编程联盟 编程联盟
广告联系 站点地图 设为首页
站长作品 关于本站 收藏本站
首页>>开发资料>>Ajax编程>> Ajax缓存

Ajax缓存

查看次数: 174
发布时间:2008-11-14 0:00:00
作者: 编程联盟
来源: 编程联盟
 

项目要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net或MagicAjax之类的东西,手写代码也就实现了。

自认为自己的javascript水平还算可以,三下五除二就搞定了;本来也没有什么复杂的,无法是读取一个动态页,获取相关信息返回。

第二天,有人向我报告错误;说是只有第一次读取的值正常,后面的值都不正常;我调试了一下,没有问题;想,可能是IE的设置不同造成;

我由于是做B/S开发的,所以我的IE在“Internet选项”中的“浏览历史记录”,设置,“检查网页的较新版本”这一项时,我一般会设置“每次访问网页时”这一项。如图

所以在我本机调试时,并不是读取缓存,但是系统默认是的“自动”,所以在别人的机器上运行时,就会读缓存。我不能要求所有的用户都按我的设置来做,我必须去适应客户需求才对。

原因找到了;就要想办法解决。

解决的办法也很简单;在请求的页面后面加个参数,参数名无所谓,参数的值是随机数,以保证每次请求的不一样。

Request("/isLogin.aspx?para="+Math.round(Math.random()*10000)isLogin);

不知道我的想法是不是最好的,估计不是,呵呵;去百度一下,看看别人的解决办法

原文:http://hi.baidu.com/ayu1106/blog/item/ff8a897ecca8a33a0cd7daa0.html

1、在服务端加 header("Cache-Control: no-cache must-revalidate");

2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since""0");

3、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control""no-cache");

4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了

5、第五种方法和第四种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();

6、用POST替代GET:不推荐

文章来源:http://www.bcbbs.net/news/Content.aspx?id=1488
文章来源:http://www.bcbbs.net/news/Content.aspx?id=1488
收藏本文章 关闭本页
精彩推荐
精彩推荐
编程联盟 | 编程论坛 | 关于本站 | 站点地图 | 友情链接 | 联系我们

Powered by 编程联盟版权所有 ? 2007-2009 bcbbs.net
冀ICP备07500001号 冀ICP备08005404号


空间赞助商:北京易德科技有限公司