强制刷新当前页面

reload -- 强迫浏览器刷新当前页面

location.reload([bForceGet])   //重新加载当前文档
bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")

replace  -- 通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL

location.replace(location.href);  //在服务端重新生成
当调用 location.reload() 方法时, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。
如果有这种应用: 需要重新加载该页面,也就是说期望页面能够在服务端重新被创建,期望是 Not IsPostback 的。这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。
history.go(0) 
location=location 
location.assign(location) 
document.execCommand('Refresh') 
window.navigate(location) 
document.URL=location.href

this.$router.go(0)

vue中路由方法

location. reload(),this.$router.go(0) 这两种都可以刷新当前页面的,缺点就是相当于按ctrl+F5 强制刷新那种,整个页面重新加载,会出现一个瞬间的空白页面,体验不好

自动刷新页面

<meta http-equiv="refresh" content="20"> //每隔20秒刷新一次页面

页面自动跳转

<meta http-equiv="refresh" content="20;url="https://jackiehao.blog.csdn.net/"> //隔20秒后跳转到https://jackiehao.blog.csdn.net/页面

关闭窗口时刷新或者想开窗时刷新的话,在<body>中调用以下语句即可

<body onload="opener.location.reload()"> 
开窗时刷新 
<body onUnload="opener.location.reload()"> 
关闭时刷新 

另辟蹊径

新建一个空白页面supplierAllBack.vue,点击确定的时候先跳转到这个空白页,然后再立马跳转回来

空白页supplierAllBack.vue里面的内容

这个方式,相比第一种不会出现一瞬间的空白页,只是地址栏有个快速的切换的过程,可采用


provide / inject 组合 方式是我试过最实用的,下面用项目截图给大家说明下:首先,要修改下你的app.vue

通过声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载,这边定义了

isRouterAlive //true or false 来控制

然后在需要当前页面刷新的页面中注入App.vue组件提供(provide)的 reload 依赖,然后直接用this.reload来调用就行

 

Logo

前往低代码交流专区

更多推荐