PDA

Просмотр полной версии : Как запретить кеширование XML ??


Alex_B
15.09.2007, 23:39
Вот так подгружаю XML файл:
<mx:HTTPService id="galxml" url="gallery.xml" />

Если в этот файл были внесены правки, то до тех пор пока не будет очищен кеш браузера эти правки не будут видны.

Как запретить кеширование?
или как заставить браузер брать файл XML каждый раз с сервера, а не из кеша?

Спасибо.

fishbounce
16.09.2007, 00:33
url="{'galery.xml' + '?' + Math.random()}"

Alex_B
16.09.2007, 20:35
fishbounce, спасибо!!

NikR
19.09.2007, 00:30
В php можно изменить заголовки:
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
тогда кешироваться совсем не будет.
Вместо рандома лучше юзать new Date() (вдруг рандом повторится).
Страницы с рандомом/датой кешируется.
По этому поводу в нете статья.

fishbounce
19.09.2007, 12:38
да, точно, лучше использовать new Date().
то, что будет кэшироваться, это понятно.
но был и такой вариант вопроса:
> или как заставить браузер брать файл XML каждый раз с сервера, а не из кеша?

имхо, способ с ?somestring надежнее и проще прописывания заголовков. т.к. разные браузеры понимают заголовки по разному (нужно все время об этом вспоминать). а, во-вторых, если человек пишет только клиент, то ? в запросе поставить дешевле:) а то, что кэш будет забиваться - фиг с ним, на то он и кэш:)

NikR
20.09.2007, 02:49
согласен.
В статье указано, что 4х заголовков достаточно почти для всех браузеров, в т.ч. старых.

FMensk
10.04.2008, 14:39
Есть Уточняющий вопрос!

Если я гружу xml через флеш

LOGO_XML.load('JPG.xml' + '?' + Math.random());


то мне выдает ошибку...
Надо точно так же брать не кешированный xml а с сервера

infeligo
27.04.2008, 14:56
Есть Уточняющий вопрос!

Если я гружу xml через флеш

LOGO_XML.load('JPG.xml' + '?' + Math.random());


то мне выдает ошибку...
Надо точно так же брать не кешированный xml а с сервера


А ты через сервер проверяешь?