Почему предварительная загрузка JS занимает больше времени, чем загрузка обычной ссылки на изображение?

У меня есть куча изображений, которые я предварительно загружаю внутри цикла. Одно из
этих изображений также загружается с помощью html, так что я хорошо понимаю,
как работают эти два разных метода. Для измерения я использую панель "Сеть" веб-инспектора Safari после очистки кэша.

Изображение ClownFish весит 280 КБ, и при ссылке на HTML требуется 14 мс для загрузки,
в то время как изображение Aurora, на которое ссылается JS в предварительной загрузке, весит
116 КБ и загружается 77 мс.

var images = ['Aurora', 'ClownFish', 'DewDrop', 'EarthHorizon',  'FlowingRock', 'GentleRapids', 'GoldenPalace'];
images.each(function(elm){
    var path = elm + '.jpg';
    var preload = new Image();
    preload.setAttribute('src',path);
});

Это все накладные расходы, связанные с настройкой Image() и последующим присвоением ему
src? Есть ли способ ускорить это?


person Walter    schedule 06.01.2009    source источник


Ответы (1)


Вы проверили, так ли это в Firefox (используя Firebug)? И это время загрузки, сколько времени требуется для извлечения самого изображения? Или сколько времени от начала запроса до загрузки изображения?

Если последнее, это может иметь какое-то отношение к тому, где/когда javascript загружается на страницу, или у браузера уже есть слишком много запросов к домену, на котором находятся изображения, и ему приходится ждать, пока некоторые из них не завершатся, прежде чем предварительно загружать ваши изображения. .

Мне также было бы любопытно посмотреть, сколько времени занимает загрузка, если вы вообще не предварительно загружаете изображения. Получаете ли вы низкое время загрузки для всех изображений, если они загружаются с помощью html? Если нет, то, возможно, проблема в веб-сервере.

person kbosak    schedule 07.05.2009