Предварительная загрузка изображений, замедляющая загрузку страницы

У меня есть слайд-шоу, встроенное в jquery, который хранит URL изображения в массиве. Когда вы нажимаете следующую кнопку, она отправляет запрос на сервер, чтобы получить изображение, а затем показывает его. Это работает, но изображение загружается постепенно сверху вниз, как только они получены. Я решил это, добавив следующий код...

//Preload background images
            function MM_preloadImages() { 
              var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
                var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
                if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
            }
            MM_preloadImages(<%= preloadImages %> );

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

Спасибо за любой совет.

1 ответ

Решение

Ну, мы не можем сказать, в каком порядке происходит предварительная загрузка, из кода, который вы разместили, но вы можете изменить свой код так, чтобы он запускал MM_preloadImages только после завершения загрузки текущей страницы.

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

Другие вопросы по тегам