Рассмотрим следующую html-страницу, которая может загружаться во многие большие png-файлы:
<html>
<head>
<script type="text/javascript">
function hide( )
{ document.getElementById("here").innerHTML = "hidden";
}
function show( )
{ var loadMe = "";
for (var i=1; i<250; i++)
{ loadMe += "<img src='http://domain.com/" + i + "_a.png'><br>";
loadMe += "<img src='http://domain.com/" + i + "_b.png'><br>";
}
document.getElementById("here").innerHTML = loadMe;
}
</script>
</head>
<body>
<a href="javascript:hide();">hide</a>
<a href="javascript:show();">show</a>
<div id="here"></div>
</body>
</html>
В IE, Safari & Opera на компьютере с Windows изображения на этой странице загружаются только один раз (отслеживаются с помощью FreeMeter), когда переключаются кнопки показа и скрытия.
Однако в Firefox (только что установлен) некоторые образы загружаются с сервера несколько раз (мы никогда не совпадаем с начальным пиком в сетевых запросах ... некоторые вещи загружаются из кэша).
Заголовки ответов на рисунках гласят:
Date Wed, 18 Mar 2009 11:42:02 GMT
Server Apache/2.2.3 (Red Hat)
Last-Modified Mon, 27 Oct 2008 19:19:47 GMT
Etag "1abb7d7-292-45a41039f7ac0"
Accept-Ranges bytes
Content-Length 658
Cache-Control max-age=7257600
Expires Thu, 15 Apr 2010 20:00:00 GMT
Connection close
Content-Type image/png
Рассматривая about: cache , большинство загруженных изображений отображаются там (хотя при проверке кэша между щелчками «скрыть / показать», по-видимому, отсутствуют изображения):
Number of entries: 462
Maximum storage size: 50000 KiB
Storage in use: 5593 KiB
...
Key: http://domain.com/23_a.png
Data size: 16139 bytes
Fetch count: 13
Last modified: 2009-03-18 07:40:14
Expires: 2009-06-10 07:40:00
Что Firefox ожидает от меня, чтобы перезагрузить эти изображения из кэша, чтобы мы могли легко выполнять сетевые вызовы? Спасибо!
Обновление
Если я открою эту страницу в новой вкладке после показа / скрытия на первой вкладке, вторая вкладка не будет выполнять сетевых запросов. Первая вкладка продолжает делать сетевые запросы.