Что заставляет мои скрипты запрашиваться дважды при использовании Modernizr.load (yepnope.js) - PullRequest
20 голосов
/ 19 июня 2011

Я использую yepnope.js для динамической загрузки файлов javascript, и я заметил, что мои скрипты загружаются дважды в соответствии с Firebug и Webkit Inspector.

Проблема в том, чточто в сетевой панели Firebug (последняя версия Firefox 4) их ответ - 200, а не 304.Кажется, он работает медленнее, чем в Chrome.

Я загрузил это видео , показывающее проблему.Вы можете видеть, как файлы jquery-1.6.1.min.js и libs.js загружаются в дополнительное время.

Код, который я использую для этого, упрощен:

Modernizr.load({
                load: ['jquery-1.6.1.min.js', 'libs.js'],
                complete: function () {
                    console.log("loaded");
                }
});

Modernizr.load() is yepnope().

1 Ответ

25 голосов
/ 20 июня 2011

В их документации есть примечание об этом:

С http://yepnopejs.com/

Я вижу два запроса в моем устройстве инструменты, почему он загружает все дважды?

В зависимости от вашего браузера и ваш сервер это может означать пару разные вещи. Из-за характера как работает yepnope, есть два запросы сделаны для каждого файла. Первый запрос - загрузить ресурс. в кеш и второй запрос это выполнить его (но так как он в кеш, он должен выполнить немедленно). Увидеть два запроса довольно нормально, пока второй запрос кешируется. Если вы заметили, что второй запрос не кэшируется (и время загрузки вашего скрипта удваивается), затем убедитесь, что вы отправляете правильные заголовки кэша, чтобы позволить кеширование ваших скриптов. Это жизненно важно чтобы да Это не будет работать без правильное кэширование включено. Мы на самом деле тест, чтобы убедиться, что вещи не загружены дважды в нашем тестовом наборе, так что если вы думаю, у нас может быть ошибка в вашем браузер на предмет двойной загрузки, мы рекомендуем вам запустить тестовый набор для проверить, пройден ли тест на двойную нагрузку.

...