项目要用一些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