本文为大家介绍三种 js 刷新当前页面的方法,我是在vue实例下写的:
添加定时器是为了直观看到刷新效果(每次刷新都会重置为0);
reload() 方法;
replace() 方法;
页面自动刷新;
reload() 方法
reload()方法用于刷新当前文档。
reload() 方法类似于你浏览器上的刷新页面按钮。
案例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>onload()</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script></head>
<body><div id="demo"><h1>{{number}}</h1><button @click='reloadPage()'>重新加载页面</button></div>
</body>
<script>var demo = new Vue({el: '#demo',data: {number: 0},created() {this.add();},methods: {// 为了让刷新更直观,定时器的时间是随机的(80-380): Math.floor(Math.random() * 300 + 80)add() {var that = this;var timer = setInterval(function () {that.number++}, Math.floor(Math.random() * 300 + 80))},reloadPage() {location.reload()}}})</script>
</html>
效果:(每次点击,都会刷新页面重新计数)
replace()方法
案例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>replace()</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body><div id="demo"><h1>初始页面</h1><button @click='replaceDoc()'>重新加载页面</button></div>
</body>
<script> var demo = new Vue({el:'#demo', data:{ number:0},created(){},methods: {replaceDoc(){window.location.replace("https://www.csdn.net/")// window.location.href="https://www.csdn.net/"
}}})
</script>
</html>
效果:
在这里可能会有疑惑,这不就是页面跳转吗?
当我把上面代码中的:
window.location.replace("https://www.csdn.net/")
更改为:
window.location.href="https://www.csdn.net/"
那确实就是页面跳转了, replace()就是刷新,只是重定向到指定的页面了,嗯,我知道还不够有说服力,,,
location.href 通常被用来跳转到指定页面地址,强调跳转,会留下新的历史记录,可以通过“前进”和“后退”来切换URL;
location.replace方法可以实现用新的文档替换当前文档,强调替换在历史记录中,强迫浏览器将指定的URL替换掉缓存在历史记录中的URL,通俗来说一直是这一项历史记录,并不会增加新的,也就不能通过“前进”和“后退”来切换URL了。 一定遇到过,“页面超时过期”这样的情况吧,一般就用location.replace方法,这样更像是客户端F5刷新界面,当页面的method="post"的时候,也就是向服务器传送数据的时候,出现“网页过期”提示,这是Session的安全保护机制。
页面自动刷新
自动刷新比较简单只需要在head标签中添加一个meta标签:content属性设置自动刷新时间间隔。
<meta http-equiv="refresh" content="3">
完整代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="refresh" content="3"><title>自动刷新</title><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body><div id="demo"><h1>{{number}}</h1></div><script type="text/javascript" > var demo = new Vue({el:'#demo', data:{ number:0},created(){this.add();},methods:{add(){var that = this;var timer=setInterval(function () {that.number++}, Math.floor (Math.random()*300+80))}}})</script>
</body>
</html>
效果:(每隔3秒,都会刷新页面重新计数)