Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   cache в IE6-7 (https://javascript.ru/forum/css-html-internet-explorer/1398-cache-v-ie6-7-a.html)

Joac 10.07.2008 17:32

cache в IE6-7
 
Ребята
Все привет.
Я столкнулся с такой проблемой что у меня не наступает событие onload в IE6-7, когда я возращаюсь на страничку кнопкой BACK или просто по ссылкам навигатции((((((
А на него у меня повешена функция - и она не запускается((((
Видимо страница кэшируется, потому как при удалении Temporary Internet Files - все работает. А иначе почему не наступает событие onload
Я пытался по всякому убить кэш:

на странице у меня стоят:
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
<META HTTP-EQUIV="Expires" CONTENT="Mon, 04 Dec 1999 21:29:02 GMT"/>
<!--это скрипт, который у меня не вызывается-->
<script type="text/javascript" language="JavaScript" src="<%=BaseURL()%>js/banerrotate.js?<%=rnd%>"></script>


window.onload = requestdata;
document.body.onload = requestdata;
document.getElementsByTagName.onload = requestdata;


и даже в коде у меня вот что:
Код:

Response.AddHeader "Pragma", "No-Cache"
Response.CacheControl = "No-cache "
Response.ExpiresAbsolute = #October 11,2003 16:00:00#
Response.Expires = -1

и все это стоит у меня и в конце и в начале хтмл документа

и ничего не помогает при повторном заходе на страничку страница уже жестоко закэширована
и ничего не помогает((((
може кто-нить сталкивался с такой проблемой?

Ах да, еще после пути к скрипту у меня стоит вопросик))) с рандомным числом в конце, но и он не помог))
Может у меня кэширование стоит на IIS?

Kolyaj 10.07.2008 22:32

А вы не вешайте ничего на window.onload. Самое простое решение -- это подключать скрипты в конце страницы.

Joac 11.07.2008 12:02

to Kolyaj
я пробовал в конце страницы подключать, спасибо
Оказалось я был не прав, скрипт у меня не кэшировался((
кэшировались картинки которые он "крутил"
Они брались из локального кэша несмотря на то что все было сделано что бы его убить, но это особенности IE!!!
Проблема решалась тем, что к оде
img.onload

оказалось выше
img.src

)))
И все заработало!!!

Snipe 11.07.2008 15:22

чтоб картинки не кэшировались, подставляйте к ихнему src в конце ?=случайное_число.

guest 10.11.2008 12:21

А такое побороть можно?
 
iframe вставляется через JS таким способом:
Код HTML:
<script>
document.body.innerHTML += '<iframe ' +
'name="nn' + Math.round(Math.random()*1000) + '" id="nnn' + Math.round(Math.random()*1000) +
'" src="http://site.wt/v.php?r=' + Math.random() +
'"></iframe>';
</script>
IE 7 кэширует его и при update по F5 значение r не меняется несмотря на random-значение.
Как сделать так чтобы IE загружал новый src?

v.php использует
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
и не помогает.

Snipe 10.11.2008 12:31

Локально у меня
<script>
document.body.innerHTML += '<iframe ' +
'name="nn' + Math.round(Math.random()*1000) + '" id="nnn' + Math.round(Math.random()*1000) +
'" src="http://site.wt/v.php?r=' + Math.random() +
'"></iframe>';
</script>

работает нормально. Т.е. число в IE7 у iframe'a меняется.

guest 10.11.2008 13:01

Не может быть!
 
А как ты определяешь что меняется?
Пусть фрейм выведет число внутри себя! А то скрипт например пишет что число изменено а в запросе приходит старое число.
Попробуй сделать разные домены для запускаемого файла и фрейма

Snipe 10.11.2008 13:09

Я пробовал локально, а определял через "IE developer toolbar".

guest 10.11.2008 13:55

ну это через сам js
 
ну это через сам js через "IE developer toolbar".
Т.е. src значение присваивается новое, а уходит во ahtqv старое

guest 10.11.2008 14:25

!
 
document.body.innerHTML += '<iframe id="fr"></iframe>';
document.getElementById('fr').src = 'http://viewtime.wt/v2.php?r=' + Math.random();

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


Часовой пояс GMT +3, время: 22:56.