我试过搜索如何实现它们,但对我来说没有任何意义。它讨论了apache,Django和Lighttpd,但我不知道它们是什么。
我在网页上使用了ySlow,它告诉我需要一个过期标题。
显然它确实对性能有帮助,而这正是我真正需要的。
答案 0 :(得分:1)
它与jQuery无关。您服务器的响应应设置适当的标题,如Expires,E-Tag等。
您在服务器端使用哪种语言?
如果您使用的是PHP,则发送Expires标头的示例如下:
header("Expires: Tue, 31 Aug 2010 02:30:00 GMT");
答案 1 :(得分:1)
Expires是一个HTTP头字段,不能由jQuery设置。
但您可以尝试添加 HTTP等效META
element :
$("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 header field优先于 Expires (参见Modifications of the Basic Expiration Mechanism)。
答案 2 :(得分:1)
Expires
标题位于实际页面本身之外,它是服务器添加到响应中的元数据,用于向客户端指示内容的有效期。
最终,服务器需要设置响应标头。这可以在全局范围内完成,以便从服务器发送的所有内容具有相同的值。或者,如果您正在使用服务器端平台(如ASP.NET,PHP等),那么您可以以编程方式和每个资源(页面)设置Expires
标头。
然而,听起来你只需要全局设置它们 - 通常是通过服务器设置完成的。
对于Apache,请查看mod_expires
对于IIS7,take a look at this
对于其他服务器平台,只需尝试谷歌搜索“如何设置expires header {server}”,{server}是您需要的任何平台/版本。
澄清 如果浏览器先前已检索到资源(例如,myPage.html),并且该资源的有效期为24小时,则基本上会告知浏览器“如果您尝试在接下来的24小时内再次加载此页面,则可以显示您之前检索的版本,而不是从服务器请求新副本“。
对于静态页面,这可能是理想的 - 更长的到期时间可以为您的用户带来更快的页面加载(浏览器可以节省到服务器的行程),并且服务器必须处理更少的请求。
然而;对于具有长期到期的动态页面可能是有害的。想象一个只告诉时间的页面<h1>1:01PM EST</h1>
(服务器生成HTML的地方)。如果expires标头设置为1h,那么当它 shoudl 为“1:45 EST”等时,浏览器可能会向用户显示“1:01 EST”。
如果您需要明确禁用浏览器缓存(不同的浏览器使用不同的默认值,即:IE8对缓存非常积极),那么您可以设置Expires=-1
,这实际上是说页面会立即过期。
答案 3 :(得分:0)
Expires
标头用于HTTP缓存,并指示当前版本的对象不再是当前的下一个日期/时间。浏览器和HTTP缓存可以使用它来减少源Web服务器上的负载。
缓存中还涉及其他一些标题,您还应调查ETag
和Cache-Control
。
请参阅:http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13