在写项目的时候遇到这样一个问题,一个类似电商的,根据类别、品牌、年份等查商品,点击查询按钮通过ajax查询出的。查出来之后点击图片跳转到商品详情页,这时候再返回到商品查询页时,之前ajax读出来的数据会丢失(丢失的主要是通过事件查出来的数据),页面会回到刚进入这个页面时的状态。

解决方案:

1、如果是pc端,直接用window.open(),或者aget="_blank"打开新页面。

2、如果是移动端,可以用HTML5本地存储(web Storage)中的localStoragesessionStorage将整个页面的数据存储在客户端本地。

localStorage:  localStorage的生命周期是永久性的。假若使用localStorage存储数据,即使关闭浏览器,也不会让数据消失,除非主动的去删除数据。

sessionStorage:sessionStorage 的生命周期是在浏览器关闭前。也就是说,在整个浏览器未关闭前,其数据一直都是存在的。

localStorage和sessionStorage的主要方法:

setItem (key, value) ——  保存数据,以键值对的方式储存信息。

getItem (key) ——  获取数据,将键值传入,即可获取到对应的value值。

removeItem (key) ——  删除单个数据,根据键值移除对应的信息。

clear () ——  删除所有的数据

key (index) —— 获取某个索引的key

该项目遇到的问题使用sessionStorage解决。以下为具体代码。

//点击跳转
function goDesc(){//跳转之前将局部页面保存到sessionStorage对象中。window.sessionStorage.setItem("myhtml",$("#shop_list").html());window.location.href="http://www.baidu.com";
}//页面刷新
window.onload=function(){//读取sessionStorage对象中的内容var myhtml= window.sessionStorage.getItem("myhtml");//不为空表示是返回上一步进入该页面的。if(myhtml!=null){//将sessionStorage对象中保存的页面添加到页面中$("#shop_list").html(myhtml);//清空sessionStorage对象的内容。window.sessionStorage.clear();}
}

注意:只要浏览器不关闭,sessionStorage中的内容是不会清空的,所以在添加完内容要手动清空内容。

返回上一页,ajax读出来的数据丢失。相关推荐

  1. h5中返回上一页常见的问题

    1.返回上一页获取的数据不正确 需求: A --> B页面,B页面操作数据,返回A页面,A页面刷新数据并显示 问题 在pc的浏览器中B使用window.history.go(-1)实现页面的回退 ...

  2. ant PageHeaderWrapper 返回上一页

    PageHeaderWrapper  返回上一页实现代码: <PageHeaderWrappertitle={false}content={<a onClick={() => rou ...

  3. Javascript 返回上一页

    2019独角兽企业重金招聘Python工程师标准>>> 1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. ...

  4. js返回上一页并刷新代码整理 转

    返回上一页并刷新在此功能有利于用户的体验,是每一个web开发人员所必备的一项,长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下 一:JS 重载页面,本地刷新,返回上一页 复制代码 代码 ...

  5. js返回上一页并刷新代码整理

    一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a>  ...

  6. javascript返回上一页的三种写法

    window.history.go(-1);  //返回上一页 window.history.back();  //返回上一页 window.location.go(-1); //刷新上一页 wind ...

  7. vue 实现返回上一页不请求数据keep-alive

    常规操作: 我们通常会将通过接口请求数据的方法放在==created== 或者 ==mounted==这两个生命周期中的一个里面调用. 但是我们知道,不管是我们刚进入这个页面还是从其他页面返回这个页面 ...

  8. vue项目中阻止浏览器返回上一页

    vue项目中在某个页面阻止浏览器返回上一页,适用移动端.PC端. 使用场景例如: 首页 与 A页面     来回跳转,那样点击浏览器返回时也会来回跳转,本想当页面在首页的时候就不再返回了,所以这个时候 ...

  9. js返回上一页并刷新

    window.history.go(-1);//返回上一页不刷新 window.location.href = document.referrer;//返回上一页并刷新 转载于:https://www ...

  10. asp.net 返回上一页的实现方法小集

    其实要实现这个功能主要还是要用到javascript 方法一: 在asp.net的aspx里面的源代码中 <input type="button οnclick="javas ...

最新文章

  1. GitHub分享《深度学习500问》优质资源
  2. CentOS Linux解决 Device eth0 does not seem to be present
  3. scrapy软连接失效和pip软连接失效
  4. 拆解交易系统--服务稳定性
  5. Centos7上yum安装redis
  6. 【 Sublime Text 】如何将Sublime Text与Vivado 2018.3关联?
  7. 关于gradle加快构建速度采用阿里云中央仓库的配置
  8. 畅捷通t+标准版操作手册_外网IP访问畅捷通T+教程
  9. 边缘触发(Edge Trigger)和条件触发(Level Trigger)
  10. Python的sort()
  11. kaggle房价预测特征意思_Kaggle实战-波士顿房价预测
  12. 开源Easydarwin流媒体服务器Windows编译、配置、部署
  13. 斐波那契数列及其优化
  14. “稳拿高薪”三个专业?实际市场竞争压力大,就业困难!
  15. OJ1041: 数列求和2(高阶递推)
  16. [转] TextField的restrict属性妙用
  17. Zotero | zotero与endnote题录与pdf文件的完整互转(2)
  18. java乐视面试题_java面试题经典解读
  19. linux系统下载18.04,在Ubuntu 18.04系统中下载安装Persepolis Download Manager
  20. myeclipse8.5 TPTP插件的使用问题

热门文章

  1. windows 图片和传真查看器不能旋转
  2. Gradle构建速度太慢尝试加快方法
  3. 异地如何在北京换驾照
  4. CSS中vertical-align和text-align属性详解(使用场景、举例、注意点)、display:table-cell使用详解(基础介绍和使用例子)。
  5. ubuntu显卡输出hdmi屏幕没有声音
  6. 涛思数据与优锘科技达成战略合作,可视化携手大数据引领物联网科技创新
  7. python有道云笔记_Python自动同步有道云笔记到Hexo
  8. 在北京租房 舒舍的租客素质怎么样?
  9. 历时一年,我的著作《第一行代码——Android》已出版!
  10. Element的使用