Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2008, 17:32
Новичок на форуме
Отправить личное сообщение для Joac Посмотреть профиль Найти все сообщения от Joac
 
Регистрация: 10.07.2008
Сообщений: 2

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?
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2008, 22:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А вы не вешайте ничего на window.onload. Самое простое решение -- это подключать скрипты в конце страницы.
Ответить с цитированием
  #3 (permalink)  
Старый 11.07.2008, 12:02
Новичок на форуме
Отправить личное сообщение для Joac Посмотреть профиль Найти все сообщения от Joac
 
Регистрация: 10.07.2008
Сообщений: 2

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

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

)))
И все заработало!!!
Ответить с цитированием
  #4 (permalink)  
Старый 11.07.2008, 15:22
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

чтоб картинки не кэшировались, подставляйте к ихнему src в конце ?=случайное_число.
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2008, 12:21
guest
 
Сообщений: n/a

А такое побороть можно?
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
и не помогает.
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2008, 12:31
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Локально у меня
<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 меняется.
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2008, 13:01
guest
 
Сообщений: n/a

Не может быть!
А как ты определяешь что меняется?
Пусть фрейм выведет число внутри себя! А то скрипт например пишет что число изменено а в запросе приходит старое число.
Попробуй сделать разные домены для запускаемого файла и фрейма
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2008, 13:09
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Я пробовал локально, а определял через "IE developer toolbar".
Ответить с цитированием
  #9 (permalink)  
Старый 10.11.2008, 13:55
guest
 
Сообщений: n/a

ну это через сам js
ну это через сам js через "IE developer toolbar".
Т.е. src значение присваивается новое, а уходит во ahtqv старое
Ответить с цитированием
  #10 (permalink)  
Старый 10.11.2008, 14:25
guest
 
Сообщений: n/a

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать функцию типа toDataUrl для рисунка в ie6 ? Олег Общие вопросы Javascript 2 14.09.2008 00:06
new java.lang.String под IE6 diclofoss Общие вопросы Javascript 6 18.04.2008 02:06
IE6 и parentNode.parentNode lancer Events/DOM/Window 3 09.04.2008 19:10