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

Я создаю флэш-карту веб-страницы, чтобы помочь в учебе. Когда я задаю вопрос, отображается изображение, когда я выбираю ответ, отображается другое изображение. Вместо того, чтобы ждать загрузки изображения ответа после того, как я выберу ответ, я запускаю предварительную загрузку изображения ответа сразу после показа изображения вопроса. Мой прелоадер:

function preloadImage(src) {
    var image = new Image();
    image.src = src;
}

Насколько я понимаю, это кэширует файл изображения в браузере. Файл изображения отображается путем присвоения имени файла src тега изображения. После того, как файл изображения был связан с объектом Image(), тогда, когда этот файл назначается src, браузер предоставляет изображение из кеша.

Если я доволен своим ответом, карточка будет извлечена из колоды, если я не доволен своим ответом, карточка вернется в колоду и будет запрошена позже.

Если та флешка, которая возвращается в колоду, будет запрошена еще раз, то для изображения ответа снова будет вызвана предварительная загрузка.

Мой вопрос: второй и последующие вызовы моего предварительного загрузчика приведут к загрузке файла с сервера для назначения новому объекту Image() или он будет прочитан из кеша браузера.

Спасибо заранее


person user1558796    schedule 03.03.2013    source источник


Ответы (1)


Зависит от конфигурации сервера. Любой файл может быть настроен на кеширование или нет. В большинстве случаев изображения кэшируются в течение длительного времени, поэтому велика вероятность, что они не будут загружены снова. Я бы порекомендовал предварительно загрузить все ваши изображения или, по крайней мере, большинство, в зависимости от того, как вы настроили приложение, прежде чем можно будет играть. Таким образом, пользователь незначительно прерывается.

Проще говоря, нет, последующие вызовы этого метода не будут вызывать загрузку (при условии, что сервер настроен с правильными заголовками expires).

person Phix    schedule 03.03.2013