powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX в Опере и ФФ. Проблемы из-за кэширования.
13 сообщений из 13, страница 1 из 1
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516389
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикрутил я эту современную моднючюю технологию.
Все работает, содержимое нужных файлов XML подгружаются в нужную ячейку таблицы.
Только вот когда файлы на сервере я меняю, эти два браузера продолжают грузить из кэша, а то, что они изменились - наплевать. Даже если их удалить - грузят.
Разумеется, рекомендовать юзеру почистить кэш перед посещением страницы я не могу.

Попробовал вставить в начало подгружаемого файла следующую конструкцию (как и на самой странице, в которую идет подгрузка), хотя мне это и показалось как бы не очень правильным:
Код: plaintext
1.
2.
3.
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
</head>
ФФ подхватил и теперь в кэш не ломится.
А вот Опере все равно всё пофигу.

1.
Корректно ли использование такой конструкции, как в примере?
2.
Что делать с Оперой?
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516468
EmilRegis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно "просрочить" документ. Т.е. когда браузер во второй раз запрашивает документ с сервера, то он (браузер) сравнивает "срок хранения" и дату последнего изменения документа на сервере со временем кэширования, поэтому добавив в хедер такие строки:

Expires: Mon, 26 Jul 1997 05:00:00 GMT

Last-Modified: Mon, 26 Jul 2997 05:00:00 GMT

вы скажете браузеру, что страница "просрочена" и совсем недавно изменялась.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516562
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если не с помощью meta, а сервером выдавать "no-store, no-cache, must-revalidate"? На всякий случай проверьте заголовки http-сниффером. Если так не работает, то к имени вызываемой страницы попробуйте добавить сгенерированое случайное число - php?id=343434.
P.S. в некоторых случаях в отличие от других браузеров, отмена кеширования в Опере невозможна программно (по крайней мере решения проблемы не видел нигде), но тут случай другой.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516595
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчёт случайного числа, гуида или таймстампа, согласен с st_st . Тэг "мета" в случае с аяксом не имеет никакого эффекта по определению.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516718
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmilRegis,
А как сказать, что страница просрочена?

st_st,
А как сервером "no-store, no-cache, must-revalidate" выдать?

Я не умею. Как-то всё оно не очень просто... А в самом Аяксе ничего программно не предусмотрено?
Кстати, по поиску тут с засадой кэша только одну тему нашел. Только трехлетней давности и без единого ответа...

ShSerge,
ФФ "мету"подхватил все-таки. Случайное число прицеплять не могу - у меня не php, просто html.

:((
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516776
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_Q...ФФ "мету"подхватил все-таки. Случайное число прицеплять не могу - у меня не php, просто html.
:((
Ничего он не подхватил. Просто повезло, что в ФФ так работает, а не по другому.

Напишите: html?id=343434 или вообще html?343434. Потому что кеширование происходит по урл.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516779
EmilRegis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">   <!--после этой даты информация в документе считается устаревшей-->
<meta http-equiv="Last-Modified" content="Mon, 26 Jul 2997 05:00:00 GMT">  <!--дата последней модификации документа-->

кстати если вы пользуетесь ajax, то фраза

у меня не php, просто html.

не имеет смысла...php-это серверный язык, html - язык разметки...ajax'ом же вы обращаетесь к серверу..вот на сервере и можете попробовать прицеплять случайное число или дату
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516865
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"html?id=343434"
Вот это попробую

А вот это:
Код: plaintext
1.
2.
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">   <!--после этой даты информация в документе считается устаревшей-->
<meta http-equiv="Last-Modified" content="Mon, 26 Jul 2997 05:00:00 GMT">  <!--дата последней модификации документа-->
достаточно на основной странице прописать (хотя там и так ноу-кэш стоит, мм?), или тоже в подгружаемые файлы?
А если в них, то надо обрамлять <head>? Вроде бы по правилам - надо, мета-теги там пишутся, но тогда после загрузки в тело странице получится, что на ней два заголовка будет?!
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516883
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_Qдостаточно на основной странице прописать (хотя там и так ноу-кэш стоит, мм?), или тоже в подгружаемые файлы?
А если в них, то надо обрамлять <head>? Вроде бы по правилам - надо, мета-теги там пишутся, но тогда после загрузки в тело странице получится, что на ней два заголовка будет?!
Я же Вам говорил, что для аякса это не имеет смысла.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36516958
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, попробую "html?id=343434" :))
Это я могу менять на лету, а имена файлов, как я понял, менять не надо.
Если ж чё не заработает, опять приду.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36525743
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, все работает замечательно.
Но все-таки я вернулся в топик, обнаружилась совсем другая проблема, не по заявленной теме.
На самом деле этот Аякс я прикрутил лет пять назад, но до использования все руки не доходили.
Тогда особо много информации в инете найти не удалось и я сделал подгрузку XML-файлов следующего формата:
Для Оперы и ФФ файл выглядит так:
Код: plaintext
1.
2.
3.
<?xml version="1.0" encoding="Windows-1251"?>
<root>
Тут текст таблиц, типа <table><tr><td>ТОРПЕДО</td></tr></table>
</root>
А для IE6 пришлось делать несколько по другому, а именно - заменить внутри рута все треугольные скобки "<" и ">" на "& lt;" и "& gt;":
Код: plaintext
1.
2.
3.
<?xml version="1.0" encoding="Windows-1251"?>
<root>
Тут текст таблиц, типа & lt;table & gt; ... ТОРПЕДО ... & lt;/table & gt;
</root>
Меня тогда смутила необходимость держать два вида файлов на сервере, но не особо, все работало.
А вот когда я сейчас вернулся к этой "разработке", то решил проверить и новые версии браузеров, появившихся за это время, результат оказался плачевный - если в Опере и ФФ все работало по прежнему нормально, то в IE 7 и 8 стала отображаться белиберда.
Даже теги стали сбиваться, видимо некоторая последовательность символов воспринимается, как скобка.
Навскидку попробовал всю кириллицу заменить на последовательности типа "& # 1040;", но результата это не принесло.
И что делать теперь?
Для IE 7 и 8 необходимо формировать файл третьего типа, и если да, то как? ... Хотя с этими типами файлов я, наверное, пошел по неправильному пути. Что-то сомнительно такое разнообразие.
Ткните, пожалст, куда-нибудь.
Спасибо.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36526273
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понял, зачем загружать xml-файл (контент), поле которого представляет xml-контент (html)? Неужели нельзя грузить сразу контент?

Мне эта тема достаточно хорошо знакома, так как динамический контент - моя слабость и я везде его всовываю.

Если все-таки надо использовать для транспорта более расширенную структуру (типа твоего), то один совет: хранить реальный контент в файле типа хтмл, а xml-структуру создавать динамически при запросе и упаковывать загружаемый контент (у меня Java, я использую URLEncode.encode(...), у себя смотри сам), а на клиенте при получении структуры вынимать строку и преобразовать ее в xml-стрекутуру посредством decodeURIComponent(...) и вставлять уже в ДОМ. Так это будет максимально кроссбраузерно и проблем не должно возникнуть, правда, строка будет чуть длиннее. У меня такие структуры, только в JSON, получает флеш и отдает странице, которая уже распаковывает - и все отлично работает в любом браузере.
...
Рейтинг: 0 / 0
AJAX в Опере и ФФ. Проблемы из-за кэширования.
    #36526477
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckНе совсем понял, зачем загружать xml-файл (контент), поле которого представляет xml-контент (html)? Неужели нельзя грузить сразу контент?Я ничо в этом не понимаю.
Контент у меня уже готовый, да. На странице только девять строк скрипта, а содержимое формируется заранее и только грузится. Ничего динамически не формируется.
Как загрузить по другому - не знаю, как прочитал пять лет назад, так и сделал.

... Попробую перегнать в UTF-8, посмотрю, что будет.
В шестом ИЕ полет нормальный, проверил.

А для ФФ и Оперы надо в UTF перегонять, как правильно?
Они и вин-1251 нормально читают, не знаю, надо ли... Или лучше перегнать? А то в новых версиях вдруг тоже чего поменяется...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX в Опере и ФФ. Проблемы из-за кэширования.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]