Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: AJAX и PHP проблема с кешированием!
 
 автор: Zeno   (16.07.2008 в 14:03)   письмо автору
 
 

может быть вопрос не в ту ветку,

работаю с экземпляром объекта http_request, простой пример
для запрета кеширования использую стандартные заголовки
<?php
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом
Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
Header("Pragma: no-cache"); // HTTP/1.1
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
?>

Кто знаком с AJAX использую след строки:
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('GET', url, true);
http_request.send(null);
}
.....
response = http_request.responseText;
alert(response);

все вроде бы работает, но кешируется и в Мозилле и в IE6, что только не испробовал уже !
не пойму в чем может быть проблема?
заранее благодарен за помощь!

   
 
 автор: sms-send   (16.07.2008 в 15:21)   письмо автору
 
   для: Zeno   (16.07.2008 в 14:03)
 

Добавьте rand-параметр в URL запроса.

   
 
 автор: Zeno   (16.07.2008 в 15:56)   письмо автору
 
   для: sms-send   (16.07.2008 в 15:21)
 

Не совсем понял что за rand параметр?

вообще по моему проблема снялась,
поменял кодировку на ANSI с UTF8 при сохранении документа,
правда все это локально пока, представляю сколько возникнет проблем на хостинге

   
 
 автор: GeorgeIV   (16.07.2008 в 16:31)   письмо автору
 
   для: Zeno   (16.07.2008 в 15:56)
 

Боюсь, что это кратковременное решение вопроса, послушай sms-send, он дело говорит
rand параметр он имел ввиду random параметр, случайный, которы не обрабатывается, но делает строку уникальной, а значит ее нет в кэше

   
 
 автор: Anwor   (16.07.2008 в 21:59)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 16:31)
 

Всё просто, пропускай url до серверного скрипта через эту вот функцию:

function upgradeAjaxUrl(ajax_source) {
    var rnd=parseInt(Math.random()*9999);
    var q=ajax_source.indexOf('?');
    if(q>0) ajax_source+='&';
    else ajax_source+='?';
    ajax_source+="rnd="+rnd;
    return ajax_source;
}

Добавляет рандом и в простые ссылки, такие как /ajax/server.php, и в параметрические - /ajax/server.php?id=15 тоже обрабатывает корректно. Написал ее давно, ни разу не обломала ))

   
 
 автор: Zeno   (22.07.2008 в 14:05)   письмо автору
 
   для: Anwor   (16.07.2008 в 21:59)
 

Ok! Большое спасибо Anwor!
Проверить еще правда не успел, но думаю все сработает теперь

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования