微信中h5页面用window.history.go(-1)返回上一页页面不会重新加载问题问题描述:在实际开发中遇到这样一个问题,业务需求涉及到返回上一页问题,第一时间想到了window.history.go(-1)方法,这样做本身没有任何问题,但是在微信中,安卓手机还好返回上一页页面会重新加载,而ios却不会重新加载页面,这就很难受了。解决方案:网上查阅了很多资料发现很多方法都不可行,那些方法就不一一展示了,直接上最终代码。window.addEventListener('pageshow', function(e) {// 通过persisted属性判断是否存在 BF Cacheif (e.persisted) {location.reload();}
});因为我做的逻辑是在下一个要页面,进行存储咋 sesstion 里面,然后window.history.go(-1) 返回获取赋值,因为IOS 返回无法重现加载,利用上面代码进行了下修改window.addEventListener('pageshow', function(e) {// 通过persisted属性判断是否存在 BF Cacheif (e.persisted) {var objData=JSON.parse(sessionStorage.getItem('lolData'));if(objData){$('#origin-place').val(objData.start_place); //赋值$('#obj-place').val(objData.end_place); //赋值}}
});这里有人会说直接reload不就行了,因为我页面还有其他页面,要缓存,所以刷新后其他内容就会丢失了原理:pageShow事件在页面显示即会触发,无论页面是否来自BF Cache。通过检测persisted属性即可判断是否存在 BF Cache 行为。
优点:大部分浏览器都支持pageShow方法与persisted属性,并且需要的代码量只需要短短4行即可。
缺点:每种浏览器中BF Cache的机制是不同的,部分浏览器中的Bf Cache还是会重新执行js代码,会造成重复渲染效果。当然现在我们只考虑Ios中的微信页面, 所以是不存在问题。关于浏览器前进/后退缓存(BF Cache)问题详细参考:http://harttle.land/2017/03/12/backward-forward-cache.html

微信中苹果h5页面用window.history.go(-1)返回上一页页面不会重新加载/刷新相关推荐

  1. js 页面history.back()返回上一页,ios 不重新加载ready的解决办法

    项目中,主页面有很多输入字段,当由主页跳转到子页面, 将子页面的字段 set入localstorage中, 由于返回主页面不能将先前输入的字段刷新掉,所以必须要在子页面history.back(). ...

  2. Vue 返回上一页页面不刷新

    Vue 返回上一页页面不刷新 场景:首页点进列表页时要刷新数据,信息页返回列表页时不刷新数据 首先在router.js中配置 {path: '/home',name: 'home',meta: {ti ...

  3. 返回上一页页面数据保存

    用js写返回上一页是history.go(-1);刷新是location.reload();这两者放一起,就不行了,如果刷新放前边,返回上一页就不会执行,返回上一页放前边,刷新就不会执行,思考半天,用 ...

  4. JS——返回上一页页面不刷新

    function goback() {if (document.referrer) {window.location.href = document.referrer;} else {window.l ...

  5. html5返回上一页不刷新,javascript解决在safari浏览器中使用history.back()返回上一页后页面不会刷新的问题...

    我们知道,在JavaScript中提供了一个window.history.back()方法用于返回上一页,另外也可以使用window.history.go(-1)返回上一页(跳转). 在其他的主流浏览 ...

  6. html页面中使用 JS 返回上一页及返回上一页并刷新,iframe中打开指定页面,跳转到指定页面

    html页面中使用 JS 返回上一页及返回上一页并刷新,iframe中打开指定页面,跳转到指定页面. 常用方法: window.history.go(-1); //返回上一页 window.histo ...

  7. JavaScript返回上一页后并刷新页面

    一.返回上一页并刷新页面: window.location.replace(document.referrer); document.referrer:可以引用到上一个页面,这个属性是由浏览器支持的. ...

  8. js返回上一页和刷新页面

    返回上一页 window.history.go(-1);//返回上一页不刷新 window.history.back(); //返回上一页 只是单纯的返回到上一页 window.location.hr ...

  9. 页面返回 上一页 下一页

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

最新文章

  1. QPS/TPS/并发量/系统吞吐量的概念
  2. CentOS6.3.x86_64安装Trac
  3. 《大数据日知录:架构与算法》前言
  4. Mysql数据库引擎快速指南
  5. 1.9编程基础之顺序查找02:输出最高分数的学生姓名
  6. java instance关键字_Java中instanceof关键字和isInstance()方法的区别是什么
  7. Linux系统配置成简单的路由器
  8. 如何真正实现无提示保存Excel文档
  9. 通过system用户操作oracle数据库相关
  10. AppCan移动平台,开发者是这样用的……
  11. 第二节:各种路由约束(动态路由、静态路由、组合路由、正则约束、命名空间约束、区域内路由)...
  12. Bugku CTF 每日一题 想蹭网先解开密码
  13. java digester map_Digester学习笔记
  14. 苹果笔记本电脑我的计算机在哪里设置密码,Mac小教程:设置苹果Mac电脑的开机密码...
  15. 亲戚关系关系算法java程序_并查集1——查找亲戚关系
  16. 周记--听平凡人说故事
  17. Ubuntu16.04 开机开启小键盘数字键,时默认开NumLock灯
  18. 计算机工作多少,一台普通计算机能工作多少电量?
  19. [laravel]laravel8自动生成api文档
  20. 那些从来不用花呗的女孩

热门文章

  1. JavaScript中大括号“{}”作用
  2. 代号X8,小度智能屏的破壁行动
  3. Codeforces 102202D-A Plus Equals B【思维】 难度:**
  4. timertask java_java Timer和TimerTask(简单的使用)
  5. Hook executed successfully but returned HTTP 403
  6. 共享单车数据处理与分析
  7. zan php demo,Zan 连接池
  8. NFS Mout错误对应:clnt_create: RPC: Program not registered
  9. 艾默生流量计流量范围的应用条件
  10. 硅钢铁损测量 | 铁损仪用户样片及相关问题的答