关于讨厌的浏览器缓存问题尤其是safari浏览器缓存

最近在开发一个小项目,由于之前是和java后台配合的,这次开发换成PHP了,我这个数据交互的头疼啊,数据交互什么的就不说了,改天有时间再说,今天主要说下怎么禁止浏览器缓存你的html页面,之前一直没在意这个问题,但是这次开发的时候真的是遇到了这个,也问了不少朋友,但是他们都是用的大型的框架处理过缓存的,在此如果你的框架没处理过缓存,可以试下我以下的办法,我也是百度总结来的,在此只介绍前端清除浏览器缓存,方法如下:

1.在此评价下上边这个方法,很多人推荐使用,但是没卵用,我也不知道为什么推荐,估计是适用于清除大多数浏览器的缓存吧,我就不摸索了

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="0"> 

2.说是在页面加入这个iframe就可以组织safari缓存你的页面,但是我也试过了,没什么卵用,你们也可以自己去摸索

<iframe src="about:blank" style="width: 0px;height: 0px;visibility: hidden;">this frame prevents back forward cache</iframe>

3.这个方法也是最后一个方法我最后解决问题的办法,下面请看,请在body元素里边添加class=“no-cache”这个类,第三个方法是专门针对清除Safari浏览器缓存的,亲测有效

if (isSafari()) {
$(window).bind("pageshow", function (event) {
if (event.originalEvent.persisted && $('body').hasClass("no-cache")) {
document.body.style.display = "none";
window.location.reload();
}
});
}

function isSafari() {
if (navigator.userAgent.indexOf("Safari") > -1) {
return true;
}
return false;
}

//其实还有一个办法,只是利用页面跳转,不借用浏览器的返回按钮跳转时管用,就是直接跳转到指定html页面,这个是在我不经意间测试出来的,但是无法去除掉safari缓存,大概就这些了

//如果大家有更好的办法可以发表评论,大家一起探讨

posted @ 2016-05-16 00:29  绿罗兰  阅读(7713)  评论(1编辑  收藏  举报