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