1.Meta的问题
在.Net中尝试如下:
<head>
<meta http-equiv="Cache-Control" content="max-age=0" forua=true />
<meta http-equiv="Cache-Control" content="must-revalidate" forua= true/>
<meta http-equiv="Cache-Control" content="no-cache" forua= true/>
</head>
浏览器不支持默认的meta标签,例如:
<meta http-equiv="refresh" content="1;http://somewhere.com/">
虽然有少量网关支持非常有限的META标记。但是测试显示,如果使用了它们,网关就会出问题。例如某网关不支持普通的HTTP Cache控制,如果要实现Cache控制只好使用特殊的META标记。显然从其他网关来的用户就可能不支持这个META。注意:不要使用META tags。肯定有其他的方式来完成你的想法。
最常使用的META是:
<meta http-equiv="refresh" content="1;http://somewhere.com/">
这个告诉浏览器重新装入指定的WML页面。WML中已经包含了一个<ontimer>。
2.如何防止变量被保存在Cache中?
变量保存在Cache中,这样变量还可以再利用。例如当用户返回到上一个输入卡片,他不需要重新输入,只需要改变需要改变的地方。但是在某些情况下这会造成一些问题。例如以WAP聊天系统,有些变量用了一遍又一遍,但是需要不同的内容。有些浏览器,例如:Nokia 7110,就会存在类似的在该清除的时候无法清除的问题。
在WML中,<card>标签有一个参数叫做newcontext。
当newcontext="true" 时清除所有的变量。但是这样也清除了所有导航的历史记录,这意味着back按钮不再工作。
为了清除变量,可以告诉浏览器将变量设为空:
<setvar name="one_variable" value=""/>
<setvar name="another_variable" value=""/>
但是,不是每个时候都有效果。在某些情况下必须使用一个难以想象的方法来清空变量。就是使用 onenterforward 事件。
<onevent type="onenterforward">
<refresh>
<setvar name="one_variable" value=""/>
<setvar name="another_variable" value=""/>
</refresh>
</onevent>
------------------------------------------------------------------------------------
Edit at 2006-03-07
.Net中缓存的用法
启用页面输出缓存的时候,运行库将决定是发送页面的缓存版本还是通过比较HTTP_User_Agent标识字符窜来重建页面。因此,运行库为来自同一类型浏览器的请求缓存了一个页面,如果客户端提出页面请求,运行库将该页面从缓存中提供给客户端,而不是重建页面。使用OutputCache指令的VaryByParam、VaryByHeader和VaryByCustom属性能够改变默认行为。
<%@ OutputCache Duration="60" VaryByParam="none" %>
所显示的时间直至首次访问超过60秒之后才会变化
Tips://OutputCache指令必须包含VaryByParam属性并且可以包含可选的VaryByHeader和VaryByCustom属性。
VaryByParam
VaryByHeader
VaryByCustom
浙公网安备 33010602011771号