为网站设置过期标题需要多长时间?

时间:2010-07-29 12:40:06

标签: asp.net performance optimization yslow

  

“网页越来越多   复杂的脚本,风格   它们上有工作表,图像和Flash。一个   首次访问页面可能需要   几个HTTP请求加载所有   组件。通过使用Expires标头   这些组件变得可缓存,   这避免了不必要的HTTP请求   在后续页面视图中。过期   标头通常与   图像,但它们可以而且应该是   用于所有页面组件,包括   脚本,样式表和Flash。“

Yslow 所述。

我的问题是,为具有多个样式表,Flash标题,Javascripts,图像,PDF,MS Excel文件,PPT等的网站设置expire标头需要多长时间?

如果我想在所有事情上设置相同的过期时间。

2 个答案:

答案 0 :(得分:6)

我所做的是将CSS和JavaScript文件的到期时间设置为较高的值,例如1或5年。当我更改样式表或JS文件时,我会更改其URL中的版本号,以防止从缓存中提供过时的文件。

看起来这也是SO的作用:

<link rel="stylesheet" href="http://sstatic.net/stackoverflow/all.css?v=e27c9b7474df">

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script src="http://sstatic.net/js/question.js?v=b05e8725a843" type="text/javascript"></script>

因此,当他们更改样式表时,他们会将all.css?v=e27c9b7474df更改为all.css?v=some new versionquestion.js javascript文件遵循相同的约定。但是文件名也可以工作,你可以调用你的CSS / JS文件all-1.css,然后将它改为all-2.css等。只要URL改变,版本号的实际格式就由你决定。

答案 1 :(得分:2)

如果您的网页资源(images / css / js)通常不会更改且是静态的,您可以将expires标头设置为远远超出 1年的范围。

对于页面本身,取决于内容。如果您的内容经常更改,则应确保您的过期标头未设置为较大,否则您的访问者将收到过时的内容。

如果您考虑像SO本身这样的网站,内容会频繁更改,以至于页面上的过期标题非常小。从标题看起来,他们看起来使用了60秒的最大年龄,并且从当前时间开始有1分钟的过期标题。