我尝试过寻找如何实现它们,但这对我来说毫无意义。它谈到了 apache、Django 和 Lighttpd,但我不知道它们是什么。
我在网页上使用了 ySlow,它告诉我需要一个过期标头。
显然它确实对性能有帮助,而这正是我真正需要的。
与 jQuery 无关。您的服务器的响应应设置适当的标头,例如 Expires、E-Tag 等。
您在服务器端使用什么语言?
如果您使用 PHP,发送 Expires 标头的示例如下:
header("Expires: Tue, 31 Aug 2010 02:30:00 GMT");
Expires是一个HTTP头字段,不能通过jQuery设置。
META
元素:
$("head").append('<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">')
但是,如果识别出这样的 HTTP 等效
META
元素,则取决于用户代理。更好的方法是在 HTTP 标头中设置它。
顺便说一句:在 HTTP 1.1 中,带有 max-age 参数的 Cache-Control 标头字段优于 Expires(请参阅基本过期机制的修改)。
Expires
标头位于实际页面本身之外,它是服务器添加到响应中的元数据,以向客户端指示内容的有效时间。
最终,由服务器来设置响应标头。这可以在全局范围内完成,以便从服务器发送的所有内容都具有相同的值。或者,如果您使用服务器端平台(例如 ASP.NET、PHP 等),那么您可以以编程方式并基于每个资源(页面)设置
Expires
标头。
但是,听起来您只需要全局设置它们 - 这通常是通过服务器设置完成的。
对于 Apache,请查看 mod_expires
对于 IIS7,看看这个
对于其他服务器平台,只需尝试谷歌搜索“Howto set expires header {server}”,其中 {server} 是您需要的任何平台/版本。
并澄清它们是什么 如果浏览器之前检索过某个资源(例如 myPage.html),并且该资源的过期时间为 24 小时,那么浏览器实际上会被告知“如果您尝试在接下来的 24 小时内再次加载此页面,您可以只显示您之前检索到的版本,而不是从服务器请求新副本”。
对于静态页面,这可能是理想的选择 - 较长的过期时间可以为用户带来更快的页面加载速度(浏览器节省了到服务器的行程),并且服务器必须处理更少的请求。但是;对于过期时间较长的动态页面可能是有害的。想象一个仅显示时间的页面,如
<h1>1:01PM EST</h1>
(服务器在其中生成 HTML)。如果过期标头设置为 1 小时之类的值,那么浏览器可能会向用户显示“1:01 EST”,而它应该是“1:45 EST”等。 如果您需要显式禁用浏览器缓存(不同的浏览器使用不同的默认设置,即:IE8 对于缓存非常积极),那么您可以设置
Expires=-1
,这本质上是说页面立即过期。