Как лениво загрузить сам jQuery, особенно когда используется $ (document) .ready () - PullRequest
3 голосов
/ 15 марта 2012

Я использую jQuery на моем сайте следующим образом:

<head>
<script src="http://ajax.googleapis.com/.../jquery.min.js" ...></script>
</head>

Затем я использую:

$(document).ready(function(){
});

В некоторых случаях используется это событие:

$(document).ready(function(){
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.async = true;
    s.src = "http://www.script-host.com/.../script.js";
    document.getElementsByTagName("head")[0].appendChild(s);
});

Теперь jquery.js, кажется, (один из) самых тяжелых ресурсов на моем сайте с точки зрения размера файлов.Поэтому я хочу лениво загрузить сам jquery.js, но понимаю, что это приведет к сбою всех событий document.ready.Какой лучший обходной путь для этого?

Ответы [ 2 ]

4 голосов
/ 15 марта 2012

Может быть, эта недавняя статья может вам помочь: http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax

Идея состоит в том, чтобы создать временную функцию $, в которой вы собираете все функции, которые должны быть выполнены при событии domready, а затем заменяются позже, когда вы загружаете jQuery внизу страницы.

3 голосов
/ 15 марта 2012

Вы можете загрузить jQuery внизу страницы, а не в <head>. Он по-прежнему будет использовать пропускную способность, но визуально он будет быстрее.

...