AJAX и кеширование в IE

beejuice

Новичок
AJAX и кеширование в IE

Есть такая проблема. Нужно обновлять данные раз в секунду с помощью AJAX. В тестовом варианте скрипт каждую секунду обращается к серверу и получает от него случайное число.

Во всех браузерах кроме IE проблем никаких. Но IE запоминает первый полученный результат и в дальнейшем выводит только его.

Код такой:

PHP:
function ctext(){

   var bu=document.getElementById('bu');

   var url = 'http://cion/ajax.php';
    
   this.http.open("GET", url, true);

   this.http.onreadystatechange = function() {

        if (http.readyState == 4) {

				bu.value = http.responseText;
				this.http.onreadystatechange = function () {};

        	}
    
		this.http.send(null);
    
       }

   setTimeout('ctext()', 1000);

}
Думаю дело в кешировании. Как можно обойти эту проблему, без присваивания уникального URL каждому запросу?
 

x-yuri

Новичок
"If the user agent implements a HTTP cache it should respect Cache-Control request headers set by the script (e.g., Cache-Control: no-cache bypasses the cache). It must not send Cache-Control or Pragma request headers automatically unless the user explicitly requests such behavior (e.g., by (force-)reloading the page)" http://www.w3.org/TR/XMLHttpRequest/
 

fixxxer

К.О.
Партнер клуба
можно просто случайное число к query string добавить :)
 

beejuice

Новичок
Автор оригинала: fixxxer
можно просто случайное число к query string добавить :)
Скрипт будет обновлять данные 2 раза в секунду. Зачем столько "говна" в кеш складывать?


Решено передачей заголовка:

header("Cache-Control: no-cache");
 

beejuice

Новичок
У меня IE7, в нем работает с посылкой заголовка. В других IE пока не тестировал.
 

x-yuri

Новичок
HraKK, fixxxer, вообще-то тут и тут говорится, что посылкой заголовков отменяющих кэширование можно решить проблему. Даже говорят, что это и не баг вовсе, что по RFC так и должно быть
beejuice но в любом случае используй какую-нибудь библиотеку и не создавай себе проблемы ;-)
 

pilot911

Новичок
Автор оригинала: x-yuri
HraKK, fixxxer, вообще-то тут и тут говорится, что посылкой заголовков отменяющих кэширование можно решить проблему. Даже говорят, что это и не баг вовсе, что по RFC так и должно быть
beejuice но в любом случае используй какую-нибудь библиотеку и не создавай себе проблемы ;-)
библиотеки - это зло..
пользовался xajax... что-то стало долго отрабатывать у клиента.. перешел на jquery - все просто летает
 

x-yuri

Новичок
библиотеки - это зло..
пользовался xajax... что-то стало долго отрабатывать у клиента.. перешел на jquery - все просто летает
ну так почему же зло? правильные библиотеки - добро ;-)
 

x-yuri

Новичок
а, ты jquery фреймворком считаешь? ну тогда я думаю вопрос исчерпан
 

pilot911

Новичок
Автор оригинала: x-yuri
а, ты jquery фреймворком считаешь? ну тогда я думаю вопрос исчерпан
мне кажется, достаточно послать запрос и получить ответ в jquery

а с ответом можно сотворить все, что душе угодно...

ведь, если посмотреть на php-библиотеки для аякса - то мы увидим множество php-функций, дублирующих возможности jquery...
 

x-yuri

Новичок
зачем нужна библиотека ?
я имею в виду, что есть много разных библиотек, в частности jquery. И jquery - не единственная библиотека, возможности которой выходят за рамки ajax

ведь, если посмотреть на php-библиотеки для аякса - то мы увидим множество php-функций, дублирующих возможности jquery...
кто говорил про php-библиотеки?
 

Mols

Новичок
А что модеры спят? есть же отдельная ветка для таких тем. При чем тут МуСКЛ?
 
Сверху