美文网首页
关于点击浏览器返回键,页面不刷新的问题

关于点击浏览器返回键,页面不刷新的问题

作者: 自律财富自由 | 来源:发表于2018-11-30 17:02 被阅读0次

    在项目中碰到的一个问题,当我点击手机上的返回按钮时,ios上正常刷新了前一个页面,并触发了我想要执行的函数,但是在华为荣耀手机上并没有刷新。

    原因: 华为荣耀手机一定是读取了页面的缓存数据(今天搞清楚了是怎么回事),导致没有刷新页面
    // 新更新的内容(详见高级程序设计-13.4.7节,HTML5事件中的pageshow事件
    什么叫页面的缓存数据,原来又一个叫做bfcache的东西,这个是firfox提出的叫做"往返缓存"的一种缓存机制,用来加快用户在点击浏览器前进或者后退按钮时的速度。

    这个时候,我就需要强制刷新页面了,怎么办呢。使用reload事件也没有用。

    使用onpageshow事件

    该事件一定要绑定在window对象上,代表用户浏览页面的时候就会触发这个事件。回调函数里面的event参数,会有一个persisted参数,利用这个参数来判断,是否需要刷新页面。如果为true,说明是从浏览器缓存中读取的数据(也就是从bfcache中拿的数据),就采取刷新页面的动作(window.location.reload())。如果为false,说明没有将页面的状态存在bfcache中。
    推荐博客:https://www.cnblogs.com/wangmaoling/p/8022561.html

    相关文章

      网友评论

          本文标题:关于点击浏览器返回键,页面不刷新的问题

          本文链接:https://www.haomeiwen.com/subject/zcwhcqtx.html