Ruby on Rails: как установить срок действия контента на 15 минут, если это AJAX-запрос - PullRequest
0 голосов
/ 12 июля 2010

Является ли следующий способ обнаружения запроса AJAX и установки срока действия на 15 минут таким образом, чтобы тот же GET не требовал сетевого трафика?

# in controller
if request.xhr?
  response.headers['Expires'] = (Time.now + 15.minutes).httpdate
  response.headers['Cache-Control'] = ''   # override any no-cache, must-revalidate
end

Обновление: Я нашелболее короткая альтернатива, которая является expires_in

# in controller
if request.xhr?
  expires_in(15.minutes)
end

, хотя после этого заголовок становится:

Cache-Control: max-age=900, private

, который раньше был

Expires: Tue, 13 Jul 2010 00:59:47 GMT

, когдаэто была более ранняя версия.Но обратите внимание, что Cache-Control предназначен для HTTP / 1.1 и даже пару лет назад его поддерживали 99% браузеров, как упоминалось в книге «Высокопроизводительный веб-сайт».

1 Ответ

0 голосов
/ 15 июля 2010

Хорошо, поскольку ответа пока нет, я собираюсь использовать его в приведенном выше обновлении:

if request.xhr?
  expires_in(15.minutes)
end

Я пробовал, и он хорошо работает.

...