• 关于微信“被返回页”在被返回时自动刷新


    网上有很多这些文章,但我觉得没一篇真正解决这个问题,倒是能给人一个解决方案的思路,对,就是posState事件。 
    要解决这个问题也不难,使用history的replaceState属性替换当前网页链接(其实作用是在不增加history长度的基础上,仍然使用当前网面链接不能使用popState,因为它的作用是增加了history的长度,后退时会出错,往往跳不出循环)。 
    完整代码如下:

    $(function() {
            pushHistory();
        });
        function pushHistory() {
            window.addEventListener("popstate", function(e) {
    //          alert("后退");
                self.location.reload();
            }, false);
            var state = {
                title : "",
                url : "#"
            };
            window.history.replaceState(state, "", "#");
        };

    ps: 
    1.popState事件只有在作用go(-1),back(),forward()等操作时才会触发。 
    2.重点是self.location.reload();,后退后刷新当前页面。其它人写的文章里缺少这一块,弄的我很是郁闷。 
    3.微信里在监听到iphone后退事件后会触发popState事件,在PopState事件里执行:self.location.reload();即可刷新后退后的页面。

    网站建设过程中,提交页面后我们经常要用到window.history.go(-1)返回上一页,因为页面的缓存功能,我们只能返回上次操作的页面,但在删除等操作中,我们希望实时看到删除项目后的页面,这就要用到同时刷新技术,下面我们总结总结一下常用的几种window.history.go(-1)返回页面后实时刷新技术。

    返回上一页代码:

    <a href="Javascript:window.history.go(-1)">返回上一页</a> 
     

    1.强制载入后刷新一次

    我们可以仿照C++中解决头文件重复包含的方法,在C++中利用#ifndef A #define A #endif来解决头文件的重复包含问题同样我们采用如下方式

    if(window.name != "bencalie"){
        location.reload();
        window.name = "bencalie";
    }
    else{
        window.name = "";
    }

    进行载入后强制刷新一次,相信如果你有编程经验一定看的懂的,这里不做解释!

    2.禁止缓存,重新载入一次

    在前一页头部加上

    <meta http-equiv="Expires" CONTENT="0">
    <meta http-equiv="Cache-Control" CONTENT="no-cache">
    <meta http-equiv="Pragma" CONTENT="no-cache">

    或者

    <%
       Response.Buffer=True   
       Response.ExpiresAbsolute=Now()-1  
       Response.Expires=0   
       Response.CacheControl="no-cache"
    %>


    都可以实现刷新。

    参考:

    https://blog.csdn.net/achenyuan/article/details/77769992

    https://blog.csdn.net/bcqtt/article/details/51670461

  • 相关阅读:
    收集 关于php的博文
    hdwiki中插件开发指南
    MySQL中“”的坑
    SpringBoot生成验证码
    Spring中的循环依赖问题
    深入理解AQS(抽象队列同步器)
    JUC下线程的三种等待唤醒机制
    关于List集合的去重
    MySQL:去除 字符串
    MySQL:Can't connect to MySQL server on 'localhost'(10061)
  • 原文地址:https://www.cnblogs.com/eedc/p/9371448.html
Copyright © 2020-2023  润新知