0

    小程序返回上一页面自动刷新

    2023.07.30 | admin | 131次围观

    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控制台清了;

    我们的原理就是通过界面栈获取上个界面,再获取到上个界面对应的函数,然后我们通过获取到上个界面的函数来触发

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论