<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
这段代码想必各位即使没用过也眼熟至极了吧,但根据我的测试,上面三句话在IE7、firefox3中完全不起作用,《高性能网站设计指南》提供的方法貌似没人买帐,先说firefox。
测试工具:httpWatch.
不管上面三句话如何设置,firefox都我行我素,时而直接从缓存中读取,时而向服务器发送一次请求,找不到规律。
测试方式是刷新(f5和刷新按钮都试过)页面,观察httpWatch的'result'列的值。结果如前所述,有时是'(Cache)',有时是304,找不出规律,与上述三者的设置没有对应关系。
再说IE.
IE是绝大多数情况下值都是304,只有1次为'(cache)'还因按得太快没捕获住。
由此可见IE和FireFox似乎自己实现了一套缓存访问机制,有意忽略了HTML的设置。
但上文所提《指南》上提供的[url="http://stevesouders.com/hpws/rule-expires.php"][color=brown]例子[/color][/url]表明,该书所言不虚。这个例子有个看不懂的地方是,[color=blue]它页面上根本就没有上述三个标签[/color],难道它是从后台进行设置的?
**********************************************************************
IE的规律总结出来了:
1、页面跳转、在地址栏按回车键
IE不访问服务器,直接从缓存中提取信息(result值为'(cache)');与meta设置无关。
[img]http://hyj1254.iteye.com/upload/picture/pic/73962/745c3ca3-b592-3e8f-8d28-86074e1ad5c8.jpg[/img]
2、按刷新按钮、F5、右键刷新
IE向服务器发送查询信息,得知所访问内容未修改,从缓存中提取(result值为304);与meta设置无关。
[img]http://hyj1254.iteye.com/upload/picture/pic/73960/40a4da66-3269-35e5-a414-13e42bcf5a2c.jpg[/img]
但《指南》提供的[url="http://stevesouders.com/hpws/rule-expires.php"][color=brown]例子[/color][/url]实在让人心有不甘,它的存在让我无法就此下结论。