JavaScript: загрузка jQuery по требованию
Как проще всего динамически включать библиотеку jQuery на страницу? Я работаю над страницей, на которой иногда запускается несколько пользовательских сценариев (10 строк), а в других случаях также необходим весь jquery.
7 ответов
Просто добавьте тег сценария для jQuery, когда вам это нужно:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://www.example.com/jquery.js';
document.body.appendChild(script);
Просто иди и включи его.
Если у вас есть другие страницы, на которых вы используете jQuery, то он, вероятно, уже кешируется, если они много делают на вашем сайте (или посещают его с любой частотой). Используйте минимизированную форму, хотя. Логика использования Google применима, но вероятность кеширования меньше.
Напишите ваши комментарии: Как часто вы проверяете страницы на своем сайте? Если ваш сайт взломан, как скоро вы узнаете? Если бы размещенный в Google код был изменен, скорость обнаружения была бы на много порядков выше, а последствия для вашего сайта были бы относительно небольшими, IMO.
Включить его из CDN Google:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Существует большая вероятность того, что ваши клиенты уже будут кэшировать jQuery в своих браузерах.
Хорошо, когда пользователь уже загрузил JQuery, он кэшируется в их системе, поэтому включение его после первой начальной загрузки действительно тривиально. С тем же успехом вы можете просто включить его на ту страницу, на которой он вам нужен, и не беспокоиться о том, чтобы попытаться добавить его в среду выполнения JS позже на странице.
Да, я просто включил бы его всегда - он маленький, и если вы используете Google CDN, он, надеюсь, уже будет кэшироваться.
Если вы ДОЛЖНЫ загрузить его по требованию, вы можете написать код для добавления тега скрипта в тело. Этот код довольно распространен.
void((function(){
var e=document.createElement('script');
e.setAttribute('type','text/javascript');
e.setAttribute('src','jquery.js');
document.body.appendChild(e)
})());
Может быть, вы найдете API Google AJAX полезными. Вы можете вызвать load jQuery в любое время, позвонив:
google.load("jquery", "1");
<script src="http://www.google.com/jsapi"></script>
<script>
//your awesome google
google.load("jquery", "1");
</script>
Я понятия не имею, почему эти парни говорят, что Google - это проблема безопасности, и они не хотят, чтобы Google обслуживал ее. Вы ошибаетесь (или приводите причины), потому что, как вы говорите, для вас более вероятно, что вы скачаете плохую или измененную версию jquery (вам следует всегда заходить на сайт), чем из-за проблем с Google. Google великолепен, и он делает его легким, хостом, если для вас и у вас больше пропускная способность, чем у вашего слабого веб-сервера, так почему бы вам не использовать его?
извините за двойной код я все еще начинаю на этом сайте, но я не могу найти кнопку ответа