Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2012, 20:29   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию Отмена кеширования браузера

Всем доброго. Не искал подобной темы, так что если найдете - пните в нее.
Проблема вот в чем - браузер Firefox 14 (другие не использую) принимает с сервера данные. Данных может быть оч. много. Кеш иногда заполняется на 4-5мб. Так уж получилось что я не хочу делить на страницы, есть причины вываливать всю информацию клиенту сразу.

Все эти данные браузер кеширует, и при подобном запросе не обращается к серверу, а данные то могут изменяться.

Поптыки прописать
Код:
<meta http-equiv="Cache-Control" content="no-cache" />
на главной странице
И
Код:
   ResponseInfo.Headers.Add('"Cache-Control: no-cache, must-revalidate"');
   ResponseInfo.Headers.Add('"Pragma: no-cache"');
при выдаче результа от самого сервера не дают результатов - страница все равно кешируется.

Ремарка: Данные принимаются посредством Ajax через стандартный XMLHttpRequest (jQuery не использую)

Вопрос: Как еще можно заставить браузер забыть о кешировании по крайней мере для моего портала?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.07.2012, 02:54   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

добавлять к названию файлов, картинок, их версию.
<img src='img.png?ver123456'/>
AjaxPage.php?987664321'
За версию можно брать дату последнего изменения файла, тогда получится автоматический кэш и при изменении все будет как вы хотите
Cronos20 вне форума Ответить с цитированием
Старый 24.07.2012, 07:25   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Версию добавлять это конечно идея. Но я Аяксом получаю не файлы. Я получаю данные, которые представляют собой таблицу. Как раз картинки и пр. у меня стационарно сидят - подкачиваются только при входе. Все остальные динамические данные приходят через Аякс. Как я версию к <table> добавлю?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.07.2012, 07:48   #4
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

Попробуйте также прописать на главной:
Код:
<meta http-equiv="Pragma" content="no-cache" />
http://www.xiper.net/manuals/html/me...iv/pragma.html
И еще можно такой заголовок прописать:
Код:
<meta http-equiv="Expires" content="Wed, 26 Feb 1999 08:21:57 GMT" />
http://www.xiper.net/manuals/html/me...v/expires.html

Последний раз редактировалось Kostia; 24.07.2012 в 09:20.
Kostia вне форума Ответить с цитированием
Старый 24.07.2012, 09:04   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Раз уж аяксом, то можно добавлять в адрес рандомное число или тайм-стамп:
Код:
var time=new Date().getTime(),
    addr='ajax.cgi?'+time;
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.07.2012, 10:32   #6
chyvakoff
Пользователь
 
Аватар для chyvakoff
 
Регистрация: 10.12.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Раз уж аяксом, то можно добавлять в адрес рандомное число или тайм-стамп:
Да,но всё же лучше jQuery

У jQuery есть параметр cache, при дергании аяксом..наблюдал проблему с кэшированием в ИЕ.добавил cacha:false и всё завелось.
chyvakoff вне форума Ответить с цитированием
Старый 24.07.2012, 11:27   #7
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от chyvakoff Посмотреть сообщение
Да,но всё же лучше jQuery

У jQuery есть параметр cache, при дергании аяксом..наблюдал проблему с кэшированием в ИЕ.добавил cacha:false и всё завелось.
Задача была без jQuery;
Да и разницы по-сути никакой:
Код:
if ( s.cache === false ) {

				var ts = jQuery.now(),
					// try replacing _= if it is there
					ret = s.url.replace( rts, "$1_=" + ts );

				// if nothing was replaced, add timestamp to the end
				s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
			}
jQuery тоже юзает тайм-штамп
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ замкнутого кеширования Igor92 Помощь студентам 0 18.05.2011 01:15
Механизмы кеширования клиентских запросов в почтовиках Кнехт Общие вопросы .NET 2 25.10.2010 20:27
Закрыть, Отмена. agregator Microsoft Office Excel 6 12.02.2010 09:56
Отмена в ColorDialog'е Marsel737 Общие вопросы Delphi 5 24.11.2009 16:09
Отмена попапа SONce Общие вопросы Delphi 1 18.04.2009 06:48