PDA

Просмотр полной версии : Гостевая - проблемы с кешем.


glBreaker
17.02.2009, 15:58
На моем флеш сайте присутствует система комментариев, запись в XML происходит посредством PHP-скрипта, все бы ничего, да только обновление происходит не сразу, а минут этак через пять. Причем на денвере такой проблемы нет - сообщения добавляются сразу. Также было и на прежнем хостинге, но сейчас я хостинг поменял и появилась такая проблема.
В принципе это не так уж страшно, но все таки, может быть подскажете, как сделать чтобы такого не было и сообщения появлялись сразу?

<?php
ini_set('error_reporting',E_ALL);
ini_set('display_errors',1);

$header = @$_POST['amp;header'] or $header = '';
$body = @$_POST['amp;body'] or $body = '';

$file = @$_POST['amp;file'] or $file = '';
$true_date = date( "d.m.Y" );


$a = new DOMDocument('1.0','UTF-8');
if(!@$a->load($file))
{
$aEntire = $a->appendChild($a->createElement('entire'));
}
else
{
$aEntire=$a->firstChild;
}
$aFlashanswer = $aEntire->appendChild($a->createElement('flashanswer'));
$aFlashanswer->setAttribute('header',$header);
$aFlashanswer->setAttribute('body',$body);
$aFlashanswer->setAttribute('date',$true_date);

$a->save($file);

echo "<answer><content value=\"ok\"/></answer>";
?>

Скрипт не мой - я сам не очень в пхп...

Пробовал добавить в начало вот это, но не помогло:
header("Cache-Control: no-store, no-cache, must-revalidate");
header('Cache-Control: post-check=0, pre-check=0');
header('Cache-Control: max-age=0');
header('Pragma: no-cache');

Добавлено через 6 часов 46 минут
Решил проблему путем добавления к ссылке на файл рандомного числа в качестве параметра.

user123
17.02.2009, 23:33
header('Expires: Mon, 26 Jul 2007 05:00:00 GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').'GMT');

вот так отменяй кеширование

glBreaker
18.02.2009, 00:05
Я вот так сделал.
cComments.load("db/comments/" + SWFAddress.getParameter('genre')
+ "/comments" + SWFAddress.getParameter('id') + ".xml?" + random(999999));
Работает без нареканий, так что оставлю.

Тем не менее, твои заголовки закину в скрипт))) На всякий)