У любого из популярных в настоящее время браузеров есть особые проблемы с кешированием * Ответы XMLHttpRequest, о которых мне нужно знать?Какие у браузеров проблемы с кешированием ответов XMLHTTPRequest?
Я хотел бы иметь возможность включать запросы XMLHttpRequest на каждую страницу в качестве метода динамической загрузки контента (например, JSON) или поведения (например, eval() ed Javascript), относящегося к типу страницы, но хотел сделать что ресурсы, которые он получает с сервера, могут быть кэшированы, если сервер отправил правильные заголовки.
Я был заинтересован в том, чтобы читать this article which mentions, что браузеры, такие как Firefox 1.1, не кэшируют какой-либо контент, полученный с помощью XMLHTTPRequest, и что он всегда запрашивает новые данные, отправленные полностью (с помощью Cache-Control и без If-Modified-Since) независимо от заголовки, отправленные сервером.
Очевидно, что эта статья очень старая - я даже не помню Firefox 1.1; поэтому какие соображения мне нужно делать для популярных популярных браузеров и есть ли какие-то трюки, когда я конкретно хочу ответов на кеширование?
** Чтобы уточнить мой вопрос, кеширование, я имею в виду кеширование на стороне клиента, где сервер выдает информацию о свежести (в виде директивы Cache-Control: max-age или заголовок Expires:) и браузера хранит копию ответа в кеше вместе с датой истечения срока действия, так что будущие запросы на один и тот же ресурс, выпущенный с последующих страниц, могут быть удовлетворены из кеша браузера без необходимости каких-либо контактов с сервером. Все основные браузеры делают это правильно для большинства контента, но я слышал, что Firefox не может это сделать для содержимого XMLHttpRequest. Я спрашиваю, знает ли кто-нибудь о случаях, когда какой-либо из современных браузеров не кэширует ответы в соответствии с спецификацией при использовании XMLHttpRequest. *
это лучше, и более последовательно контролировать его в вас JS. если вам не нужно обновлять, не запрашивайте. – Javier
Как вы это понимаете? Не могли бы вы привести пример? Я хотел бы получить что-то с сервера, но если браузер имеет его в кеше с предыдущей страницы, и он не истек, для того, чтобы он не мог вызвать отключение сервера. Я все еще хочу данные, хотя я не могу просто не запросить. – thomasrutter