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" и ничего не помогает при повторном заходе на страничку страница уже жестоко закэширована и ничего не помогает(((( може кто-нить сталкивался с такой проблемой? Ах да, еще после пути к скрипту у меня стоит вопросик))) с рандомным числом в конце, но и он не помог)) Может у меня кэширование стоит на IIS? |
А вы не вешайте ничего на window.onload. Самое простое решение -- это подключать скрипты в конце страницы.
|
to Kolyaj
я пробовал в конце страницы подключать, спасибо Оказалось я был не прав, скрипт у меня не кэшировался(( кэшировались картинки которые он "крутил" Они брались из локального кэша несмотря на то что все было сделано что бы его убить, но это особенности IE!!! Проблема решалась тем, что к оде img.onload оказалось выше img.src ))) И все заработало!!! |
чтоб картинки не кэшировались, подставляйте к ихнему src в конце ?=случайное_число.
|
А такое побороть можно?
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 и не помогает. |
Локально у меня
<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 меняется. |
Не может быть!
А как ты определяешь что меняется?
Пусть фрейм выведет число внутри себя! А то скрипт например пишет что число изменено а в запросе приходит старое число. Попробуй сделать разные домены для запускаемого файла и фрейма |
Я пробовал локально, а определял через "IE developer toolbar".
|
ну это через сам js
ну это через сам js через "IE developer toolbar".
Т.е. src значение присваивается новое, а уходит во ahtqv старое |
!
document.body.innerHTML += '<iframe id="fr"></iframe>';
document.getElementById('fr').src = 'http://viewtime.wt/v2.php?r=' + Math.random(); IE в новый создаваемый фрейм загружает прошлый адрес, а потом обновляет его и получается две загрузки фрейма, вот отстойный браузер, чтоб он умер бесследно... |
Часовой пояс GMT +3, время: 22:56. |