js页面刷新
让页面进行刷新,可以使用 location.reload() 方法,但是这种方法会让页面一直不断的刷新。
这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据,界面会重新加载,然后,加载完成又调用了location.reload()方法,这样就陷入了死循环,一直处于请求然后刷新的状态。
为了解决这样的问题,我们使用下面这种方式:
利用以上方法,在每次进入这个页面的时候,都会绕过浏览器缓存,重新向服务器获取数据。
1、首先新建一个html文件,命名为test.html,在test.html文件内,引入jquery.min.js库文件,成功加载该文件,才能使用jquery中的方法。
2、在test.html文件内,使用button标签创建一个按钮,按钮名称分别为“刷新页面”。
3、在test.html文件内,设置button标签的id为btn,主要用于下面通过该id获得button对象。
4、在js标签内,使用$(function(){ })方法在页面加载完成时,通过window.location.href获得当前页面的链接,并把链接保存在变量url中。
5、在js标签内,通过id(btn)获得button对象,给它绑定click点击事件,实现当按钮被点击时,使用window.location.href方法跳转至url,从而实现刷新页面的效果。
6、在浏览器打开test.html文件,点击按钮,查看实现的效果。
网页中用户的表单填写到一半,或者ajax请求发送期间,如果用户刷新浏览器可能会导致数据保存失败。需要阻止页面刷新,这时可以通过监听页面window.onbeforeunload事件函数来处理。
window.onbeforeunload = function(e) {
var dialogText = 'Dialog text here'
e.returnValue = dialogText
return dialogText
}
不过chrome不支持自定义显示文字,固定为
“要重新加载该网站吗?
系统可能不会保存您所做的修改”
而firefox和safari就会正常使用return value里面的文字
参考:
-- https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Browser_compatibility