Кэш браузера при запросе Ajax

Иногда зарпосы кэшируются и некоторые браузера выдают устаревшию информацию, когда ссылка однотипная. То есть первый раз за кэшировав ссылку и последущий выдают кэш, ответ на самый первый запрос.

new Ajax.Request(this.Connector+"?get=dirContent&browser="+this.BrowserType+this.SecurityAdd);

Если в ответе лежала бы такая функция то ответ был бы всегда одинаковым:

echo "Вы увидите всегда одно и тоже число:".rand().", timestamp: ".time();

Один из методов этого избежать - это передавать уникальную ссылку например в конце дописывать уникальное число например &rand="+Math.random(). Таким образом каждый раз будет новая ссылка, и браузер будет показывать каждый раз новый ответ.

new Ajax.Request(this.Connector+"?get=dirContent&browser="+this.BrowserType+this.SecurityAdd+"&rand="+Math.random());


Еще одно Решение

Еще один вариант это в ответе запроса разместить заголовок чтобы избежать кэширование браузером:

//PHP Requests Handler
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Время в прошлом
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache");
//header ("Content-type: application/xml"); //Если посылаете XML
 
//...................
echo "Вы увидите каждый раз новое число:".rand().", timestamp: ".time();


Источник: http://www.srubil.ru
Категория: Веб-программирование | Добавил: kotenok1343 (04.02.2010)
Просмотров: 440 | Теги: AJAX, Статьи по Ajax | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]