"时间戳"与IE缓存
今天看CZBK的AJAX视频,发现一个小问题,不经常注意的问题.对于IE浏览器有这种现象,在访问相同地址的时候会调用 服务器端在浏览器中的缓存.比如访问的两次地址都是 http://localhost:8888/Test/Servlet?name=evan那么第二次访问就不会重新访问服务器端,而会直接调用浏览器离的缓存来进行返回运算.
解决方法是利用"时间戳"的伪地址骗过浏览器. 在发送url请求时加上一个参数,这个参数是时间戳,就是系统时间.(以毫秒为单位的数字类型),下面是视频教程中写的一个js函数.
- function convertURL(url) {
- var timstamp = (new Date()).valueOf();
- if (url.indexOf("?") >= 0) {
- url = url + "&t=" + timstamp;
- } else {
- url = url + "?t=" + timstamp;
- }
- return url;
- }
function convertURL(url) {
var timstamp = (new Date()).valueOf();
if (url.indexOf("?") >= 0) {
url = url + "&t=" + timstamp;
} else {
url = url + "?t=" + timstamp;
}
return url;
}
经测试在FX下不会有此缓存,而在IE下会有.
这个时间戳的伪地址还用在 一般web验证码刷新上!