<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的设置。
但上文所提《指南》上提供的例子表明,该书所言不虚。这个例子有个看不懂的地方是,它页面上根本就没有上述三个标签,难道它是从后台进行设置的?
**********************************************************************
IE的规律总结出来了:
1、页面跳转、在地址栏按回车键
IE不访问服务器,直接从缓存中提取信息(result值为'(cache)');与meta设置无关。
2、按刷新按钮、F5、右键刷新
IE向服务器发送查询信息,得知所访问内容未修改,从缓存中提取(result值为304);与meta设置无关。
但《指南》提供的例子实在让人心有不甘,它的存在让我无法就此下结论。
1 楼
vb2005xu
2010-10-12
一般缓存控制都是发送头信息吧 html这个似乎没有多大的用处