2013-07-10 2 views
3

Есть ли способ, который позволяет мне загружать jQuery только один раз на несколько страниц? Я загружаю внешние страницы внутри div.Загрузка jquery один раз на все страницы

$("#home").click(function(e) { 
    e.preventDefault();$("#content").html(ajax_load).l‌​oad("page.html"); 
}); 

Для загружаемых страниц требуется JQuery. Вместо вызова jQuery, например: (<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">) на каждой из этих внешних страниц я могу вызвать уже загруженную версию или мне нужно снова и снова вызывать JQuery?

Я спрашиваю об этом, потому что я не повторяю постоянную загрузку jquery libary на каждую внешнюю страницу и это не замедляет загрузку внешних страниц?

+0

«Я загружаю внешние страницы внутри div». Какой код вы используете для этого? – j08691

+0

вы можете попробовать кэширование браузера Это может помочь вам http://stackoverflow.com/questions/311062/caching-javascript-files – tousif

+1

Если вы действительно загрузка с Google CDN, то вы уже в кэше, поэтому повторная загрузка jquery не произойдет. – gustavohenke

ответ

2

Если вы загружаете внешние страницы с помощью ajax на страницу с jquery, вам нужно только загрузить jquery на эту страницу. Поэтому я полагаю, что да, вы можете ссылаться на уже загруженную версию jquery.

Просто не забудьте включить параметр выбора в любые прослушиватели событий (например, .on()), чтобы делегировать событие, так как добавляемый контент динамически добавляется и не привязывается напрямую. http://api.jquery.com/on/#direct-and-delegated-events

Если у вас загружен jquery на внешние страницы, которые получают ajaxed, на главной странице будут загружены две разные библиотеки jquery, что не так, как вы хотите, поскольку это может вызвать все типы проблем.

+0

Легенда, спасибо. Это была точная страница, которую я искал! –

0

Это будет загружать всю страницу внутри #content. Если нет других необходимых скриптов, например. чужие .js файлы с внешней страницы вы можете обернуть все в вашем теле тега в DIV и сделать следующее:

$("#content").html(ajax_load).load("page.html#wrapper"); 

Это загрузит только то, что находится в #wrapper.

Я не могу вспомнить, почему, но я знаю, что вы не можете просто использовать тег body как селектор для этого.

Примечание: div не нужно называть оберткой.

Надеюсь, это поможет!