在做html5开发时,经常会碰到从列表页跳转到详情页,然后在点击返回或者手机手势返回后,列表内容刷新且无法定位到点击的位置,尤其包含列表加列表的情况 问题尤其明显。

解决办法如下:

1、vue的组件切换,然后使用keepAlive来控制组件的刷新和缓存

缺点:项目需使用vuejs

2、使用local storage或者cookie记录 当前列表处定位高度,以及加载的页数等,通过浏览器判断,如果是返回过来的,写另外的ajax加载出来,渲染出来,然后在执行#方式定位

缺点:加大交互代码的开发量,同时用户体验感不是很好,如果存在列表+列表的情况逻辑上的先后更加负载

3、使用iframe嵌套,客户感觉是跳转页面,其实是弹框覆盖,然后监听返回,关闭iframe。

我本人使用的是第三种方式,其稳定和兼容性比较强,只要封装成function,使用的时候传入url调用即可。

调用js:h5Open('http://xxxx.com/wap/hxxxpage?id=333');

封装方法:

function h5Open(_url){ if (!_url) { return; }if ($("#aoq_h5o").length <= 0){$("body").append('<div id="aoq_h5o" style="position: fixed; z-index: 999;display: flex; justify-content: center;  align-items: center; background: white; width: 100%; height: 100%; top:0px; left:0px;"><iframe frameborder=0 width=100% height=100% src="#"></iframe></div>')}$("#aoq_h5o iframe").attr("src", _url); $("body").css("overflow", "hidden");var state = { title: "title", url: "#" };window.history.pushState(state, "title", "#");// 监听返回键window.addEventListener("popstate", function (e){$("#aoq_h5o").remove();$("body").css("overflow", "");});}

tip:iframe的viewport和调用页面是一致的,需要缩放适配等自己在iframe 标签里面加

如果页面html静态展示非异步拉取的列表数据,直接在跳转的a标签里面使用target="_blank"就好了。

【一句话调用】h5页面 返回缓存 如js加载列表页点击进入详情页,返回后刷新的问题和无法定位问题 html 返回定位相关推荐

  1. layui父页面调用子页面的渲染_layUI ajax加载html页面后重新渲染的方法

    相关问题同: 1.layUI使用jquery.load加载界面时,如何让layui渲染页面? 2.layUI ajax加载html页面后重新渲染 layUI ajax加载html页面后渲染,关键在将h ...

  2. 微信小程序iphone7设备下跳转h5页面失败,h5页面显示白屏,加载报错,其他页面正常显示

    如题,遇到了上面这个问题,在小程序的webview中加载了一个h5页面,满足某种条件的时候跳转到到这个h5页面,这个页面处理了一些逻辑,处理完成后会跳转回来这个页面,所以在往这个h5页面跳转的时候也携 ...

  3. android网页打印,安卓网页打印,h5页面打印,浏览器打印,js打印工具

    Android设备打印比较麻烦,一般设备厂商都提供原生app开发的SDK,我们web开发者为难了,不会原生开发啊 给大家提供一个思路,实现web加壳,利用打印浏览器实现 简单来说就是把我们的web页面 ...

  4. jap页面使用ajax动态加载列表数据,JSF - 使用AJAX调用基于DataTable中的mimetype值加载不同形式...

    对于我的一个项目,我需要根据DataTable组件中可用的mimetype值加载不同的表单.我有标题,内容 - 中间的DataTable和页脚中的数据显示.单击DataTable条目应根据mimety ...

  5. 停止页面js加载函数(jquery)╮(‵▽′)╭秒杀业务场景

    //停止页面js加载  function CloseSearch() {     $(".CloseSearch").html(CloseSearch);     var xmlh ...

  6. 一个页面从输入URL到加载显示完成,发生了什么?

    面试经典题--URL加载 一.涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns.http):DNS解析成IP并完成http请求发送: 传输层(tcp.udp):三次握手四次挥手模 ...

  7. Android批量图片加载经典系列——使用LruCache、AsyncTask缓存并异步加载图片

    一.问题描述 使用LruCache.AsyncTask实现批量图片的加载并达到下列技术要求 1.从缓存中读取图片,若不在缓存中,则开启异步线程(AsyncTask)加载图片,并放入缓存中 2.及时移除 ...

  8. three.js加载3d模型_基于WebGL的3D技术在网页中的运用 ThingJS 前端开发

    Three.js.ThingJS这些引擎库可以加载3D制作软件的模型,大幅度提高了制作效率,改变WebGL开发困难的局面,让Web开发者享受便捷的3D开发服务.三者的难度对比如下: ThingJS(框 ...

  9. (转) Arcgis for js加载百度地图

    http://blog.csdn.net/gisshixisheng/article/details/44853709 概述: 在前面的文章里提到了Arcgis for js加载天地图,在本节,继续讲 ...

最新文章

  1. libev源码解析——监视器(watcher)结构和组织形式
  2. 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!
  3. 比特币现金之城——北昆士兰
  4. 【Linux】一步一步学Linux——wall命令(237)
  5. Acer 4750 安装黑苹果_自己安装黑苹果,其实黑苹果也没那么难~
  6. Mysql学习总结(43)——MySQL主从复制详细配置
  7. 网管日志-06.08.16
  8. Java AtomicInteger类源码解析
  9. Win7如何硬盘安装Ubuntu实现双系统
  10. 标准评分卡分数计算原理_学习评分卡Gini指标?这篇看完就够了!
  11. Ubutun16.04安装和使用daemontools
  12. android 色彩搭配,设计学堂:关于APP配色的一些常用色彩搭配技巧
  13. WPS中用mathtype插入公式的方法
  14. JavaScript三种弹出框(alert、confirm、prompt),一次性全弄清!
  15. OGRE里,MAYA模型导出MESH格式模型方法
  16. Amazon上是如何对小说进行分类的呢?网文出海小说APP可借鉴参考的点有哪些?
  17. 芯片解密STM32F100VB 芯片基本特性
  18. 如何打开VoLTE,ViLTE,VoWifi Feature
  19. request.setAttribute理解
  20. Python视频分割(截取视频部分保存)

热门文章

  1. CMake I 编译源文件的两种方式
  2. 8、XPOSED四、劫持与盗号
  3. shell脚本格式错误
  4. linux grep -w
  5. [系统测试]EVEREST Ultimate Edition 2006(硬件检测) V4.20 Build 1245 BETA 绿色特别版
  6. qq登录无法连接服务器未响应,Windows7系统中登录QQ时提示腾讯qq未响应的解决方法...
  7. 记录一次关于synchronized同步代码块的问题
  8. 让Windows Media Player和MP3播放器一样可以显示歌词
  9. easyshop 下载地址
  10. quartus ii 9.0连接驱动程序USB blaster驱动安装