代码改变世界

禁用浏览器缓存

2009-09-25 09:40  Aggron  阅读(662)  评论(0编辑  收藏  举报

在AJAX访问中,有些时候数据不需要被浏览器缓存,通常想到的方法就是在HTTP响应头中设置Cache-control信息,如:

Response.Expires=0;
Response.CacheControl="no-cache";

其实有更方便的方法,在URL中加入随机参数,比如:

防止对 userDetail.aspx?uid=10210981请求结果被浏览器缓存,可以将请求URL改成 "userDetail.aspx?uid=10210981&time=” + new Date()

这样下一秒再次发送请求时, time参数变了, 请求结果自然是重新从服务器获取的

在jQuery中, $.ajax{cache:false}也采用了类似的方法来禁止浏览器缓存

image

当cache:false时jQuery自动在请求地址后面添加了_=xxxxxxx 的参数。