项目开发过程中遇到的一个case,做了三个弹窗,根据后台返回数据中的两个字段:
firstView和upgrade的值来进行判断,是否需要弹窗以及弹哪个窗,其中firstview的值在指定的时间段内首次点开页面会返回true值,第二次请求该接口就会返回false,现在要解决的就是,当第一次点开页面fristvieW返回了true,成功弹窗后,进入其他页面,当点击返回按钮是,客户端会缓存刚才的请求数据,重新拿到true值,从而触发又一次的弹窗,这是不符合业务逻辑的,解决方法就是,在请求的后面加时间戳,使得只要是渲染指定页面,就发起一个全新的请求,不让浏览器使用缓存的数据:、
知识点:
浏览器缓存是基于url进行缓存的,如果页面允许缓存,则在一定时间内(缓存时效时间前)再次访问相同的URL,浏览器就不会再次发送请求到服务器端,而是直接从缓存中获取指定资源。
function timestamp(url){
// var getTimestamp=Math.random();
var getTimestamp=new Date().getTime();
url=url+"?timestamp="+getTimestamp
return url;
}
网友评论