Wiki-учебник по веб-технологиям: JavaScript/ПредварительнаяЗагрузкаИзображений ...

Главная | Каталог |

Предварительная загрузка изображений

Единственный недостаток мог бы состоять в том, что новое изображение загружается после присвоения нового адреса свойству src. Поскольку изображение – предварительно не загружено, требуется некоторое время, пока новое изображение не восстановится через Internet. В некоторых ситуациях это нормально, но зачастую задержки, вызванные этим процессом – не приемлемы. Так что мы можем сделать относительно этого? Да, предварительная загрузка изображения является решением. Для этой цели мы должны создать новый Image-объект. Рассмотрите эти строки кода:

hiddenImg= new Image();
hiddenImg.src= "img3.gif";


Первая строка создает новый Image-объект. Вторая строка определяет адрес изображения, которое должно представляться через объект hiddenImg. Мы уже видели, что присвоение нового адреса свойству src вынуждает броузер загружать изображение с указанным адресом. Так что изображение img2.gif загружается, когда выполняется вторая строка этого кода. Итак, имя hiddenImg подразумевает, что изображение не отображается после того, как броузер закончил загружать его. Оно только сохраняется в памяти (или лучше в кэше), для того, чтобы воспользоваться им позднее. Чтобы отобразить его, мы можем теперь использовать эту строку:

document.myImage.src= hiddenImg.src;


Теперь изображение берётся из кэша и сразу отображается. Таким образом мы управляем предварительной загрузкой изображения.

Конечно броузер, должен, закончить предварительную загрузку для того. чтобы отобразить изображение без задержки. Так что, если у вас много изображений, определенных для предварительной загрузки, то возможна задержка в работе, потому что броузер будет занят, загрузкой всех остальных изображений. Вы всегда должны учитывать быстродействие Internet – загрузка изображений не пойдет быстрее с этим кодом, показанным здесь. Мы только пробуем запустить загрузку изображений раньше, поэтому пользователь увидит их раньше. Для этого потребуется целый процесс, намного более гладкий.