wap中级教程 |
|---|
| WAP技术站:www.wapease.com
|
另外一种控制缓存时间的方法是使用前面提到过的Expires,不过这种方法只能告诉用户终端:只要过了指定时间,无论什么时候访问页面都要刷新。如果你下次要控制时间,只能改变Expires里的时间值。 3、 禁止对URL的缓存 [TOP] 对于快速变化的内容,一般都会希望每次都得到最新的数据。所以这个时候要完全禁止对相关网页的缓存。方法有三种: * 设定Cache-Control: no-cache; * 设定最大缓存时间为0,Cache-Control: max-age=0; * 设定缓存到期日为一个早就过去的日期,Expires: Mon, 1 Jan 1990 00:00:00 GMT。 实际上,后两种不是最好的选择。首先这样会多占用终端的处理时间,因为当碰到这个DECK时,终端需要计算一下过期时间。其次,这样会多占用一些字节,而且在表达上也不够清楚。 三、验证(validation)和历史堆栈(History Stack) 在HTTP1.1中对缓存进一步提出了验证的概念。验证的目的就是检验缓存项目是否在有效期内。由于历史堆栈的存在,WAP终端上的验证过程变得有点复杂。 WAP标准规定所有的WAP设备都至少要有可以容纳10-个项目的历史堆栈。当用户按下由<go>或其他转向指令的定义的前行(forward)链接时,URL被推(push)入堆栈。如果按下由<prev>定义的后退(backward)链接,URL被弹(pop)出。 一般情况下,所有的前行链接都会被验证,而后退链接则不会,因为它已经在cache里了。可是我们有时候还是希望当用户按下后退键时依然能够得到最新的数据。如果终端总是不予验证的话,那用户只好找到主菜单再重新进入那个页面。 幸运的是,我们用Cache-Control:must-revalidate就可以强迫用户终端在用户按back时对URL进行验证。当然,进行验证并不是说该页面会立刻重新读取,而是根据他是否过期来决定。如果没有过期,验证的结果仍然是显示缓存中的页面。 如果你需要每次back都重新读取页面,用Cache-Control:must-revalidate, no-cache可以实现。另外,把 no-cache换成max-age=300就可以在back时对已缓存了300秒的页面进行刷新。 |
| 上一篇:WAP中推送技术的分析与设计 下一篇:WAP与PHP - 基础篇 |
