zoukankan      html  css  js  c++  java
  • onpageshow 监听页面是否是缓存页面(解决微信返回按钮到上一页页面不刷新的问题)

     

     

      需求:点击A页面跳转至B页面,在B页面点击手机物理回退键或者history.back回退时,需要在A页面判断当前页面是否是回退回来的页面,而不是新加载的。这里用到一个

    onpageshow 事件。

    定义和用法

    onpageshow 事件在用户浏览网页时触发。

    onpageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发。

    为了查看页面是直接从服务器上载入还是从缓存中读取,你可以使用 PageTransitionEvent 对象的 persisted 属性来判断。 如果页面从浏览器的缓存中读取该属性返回 ture,否则返回 false

    是否支持冒泡: No
    是否可以取消: No
    事件类型: PageTransitionEvent
    支持的 HTML 标签: <body>

    以下是几种使用方式:

    1。直接在HTMl中使用,注意只能在body上进行事件注册

    <body onpageshow="myFunction(event)">

    <p>该实例演示了如何向 body 元素添加 "onpageshow" 事件。</p>
    <h1 id="demo"></h1>
    <script>
    function myFunction() {

    alert("页面是否从浏览器缓存中加载? " + event.persisted);


    }
    </script>

    2.JS中通过元素获取绑定在body上

    document.getElementsByTagName("BODY")[0].onpageshow = function() {myFunction()};

    3.在window上注册这个方法

    window.addEventListener("pageshow", myFunction);
    function myFunction(event) {

    alert("页面是否从浏览器缓存中加载? " + event.persisted);

    }.

    通过以上方法,可以满足需求,也能判断当前页面是否是缓存页面。。。event的很多属性都有点意思。。

  • 相关阅读:
    数据库系统学习(九)-嵌入式SQL语言之基本技巧
    操作系统学习(九)-- 操作系统之文件系统(目录)
    操作系统学习(八)-- 操作系统之磁盘(调度)与文件(实现)
    从windows server 2003中学到的事儿
    一名游戏开发者的告白
    所谓“学术境界”
    java解惑
    程序员的职业素养
    行业大会_平台
    寻找优秀的程序员
  • 原文地址:https://www.cnblogs.com/zhou195/p/8072394.html
Copyright © 2011-2022 走看看