Response.AddHeader "Pragma", "No-Cache"
2. 页面自动重载,在页面第一次运行时执行一次重载。
此方法稍微有点复杂,HTTP是没有状态的,请求一次页面后下次请求没有什么必然的关系,当然用Seesion可以,这样子给服务器很大的压力,还有一种获取状态的方法就是Cookie。在第一次打开一个页面时,让Cookie存一个值表示这是第一次,然后重载页面后,检测Cookie值是否是第一次js登录后返回来源页面,若是则置为非第一次状态。一个简单的实现如下。
var strcookie = document.cookie;
var arrcookie = strcookie.spit("=")
var statuscookie = arrcookie[1];
if(statuscookie == "" || statuscookie == "0"){
//retset flag
document.cookie="statuscookie=1";
}else{
window.location.reload();
document.cookie="statuscookie=0";
如果仅仅是返回上页,不需要刷新,JS可以有很多种写法:
window.history.go(-1)
window.history.back()
window.history.back(-1)
如果需要刷新,可以有两种写法:
第一种,返回后重新请求该页面
window.history.go(-1);
window.history.go(0)
//winoow.loaction=window.location
小程序返回上界面不刷新问题
现在假设我有个A界面,列表或者是其他的界面,从A界面点击跳转到B界面,然后在B界面操作后A界面应该发生变化,但是实际上我们点击返回的时候我们发现并没有刷新,这个时候我们应该通过界面栈来实现A界面的刷新js登录后返回来源页面,下面是重点:
1,首先,我们在A界面写一个函数,假如叫 changeData() ,注意这个函数并不是在onload里面,应该和onload是同级目录,代码块如下:
changeData: function (historyArr) {
let _this=this;
this.loadList();
},
onLoad:function(){//................},
2,其次,我们应该在B界面中添加若干个获取界面栈的代码块,举个例子吧,
①,我想在B界面初始化的时候就让A界面实现刷新,这个时候我们可以在B界面的onload里面添加代码块,如果B界面onload里面请求了函数,我们可以在请求的函数的
success中调用代码块,具体代码块如下:解释已经说明
//获取页面栈
var pages = getCurrentPages();
if (pages.length > 1) {
//上一个页面实例对象
var prePage = pages[pages.length - 2];
//关键在这里,这里面是触发上个界面
prePage.changeData(prePage.data.historyArr)// 不同的人里面的值是不同的,这个数据是我的,具体的你们要根据自己的来查看所要传的参数
②,我想在界面B操作后界面A实现刷新,或者是界面的局部刷新,这个时候我们应该在B界面中的你想要的操做的函数执行完成后(具体的看情况)调用上面的代码块
3,想要试试行不行,建议打印看下吧,A界面的函数加打印的数据的话触发是在B界面触发的,这点需要注意,别把console控制台清了;
我们的原理就是通过界面栈获取上个界面,再获取到上个界面对应的函数,然后我们通过获取到上个界面的函数来触发
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论