0

以下是检测 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% 的浏览器支持,正如《高性能网站》一书中所述。

4

1 回答 1

0

好的,由于还没有答案,我将使用上面更新中的答案:

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

我试过了,效果很好。

于 2010-07-15T07:39:25.620 回答