3分钟学会sessionStorage用法

3分钟学会sessionStorage用法前言 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求 对于原生 APP 来说轻而易举 毕竟自己的 APP 用户操作指哪打哪 但是 H5 该怎么做 H5 就实现不了么 对于一个爱研究攻克这些前端棘手问题的我来说 我没尝试过 我是拒绝对提出需求者说实现不了 做不到之类的 是什么需求呢 需求方要求用户在一个列表页浏览时 点击一个列表进入详情页 返回要求记录用户刚刚浏览的位置



  
前言:

  因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的我来说,我没尝试过,我是拒绝对提出需求者说实现不了,做不到之类的。

  是什么需求呢?–需求方要求用户在一个列表页浏览时,点击一个列表进入详情页,返回要求记录用户刚刚浏览的位置,而不是重新刷新页面到了页面顶部。(ps:如果用户好不容易翻到了第几十、几百乃至几千条时,难道要用户再重头开始?可能这个时候跳出率就高了,这个分析的确挺有道理,无力反驳…)。

  那么开始脑洞大开了,当时脑子里出来各种解决方案:

  1、将浏览时的滚动位置存到cookie里,进到这个页面再取。那多久销毁呢?好像不灵活…pass

  2、将详情页通过ifram或者弹框方式引到当前页,通过操作关闭当前弹窗(那么在已经完成的页面上再重构,加操作按钮?那么加载效率和体验呢?…反正不看好)

  3、将浏览时的滚动位置传到服务器端,加载页面时,根据用户来取最后浏览的位置,各种参数传来调去(跟方案一很类似)

  4、通过H5本地存储的方式将数据存起来,需要时取值(没啥经验,先研究一下吧,好像挺靠谱)

  接下来先了解一下什么是本地存储吧!

  •   简介:

  HTML5 web 存储,一个比cookie更好的本地存储方式。

  首先我们先了解一下: 

  什么是 HTML5 Web 存储?

  使用HTML5可以在本地存储用户的浏览数据。

  早些时候,本地存储使用的是 cookie。但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能.

  数据以 键/值 对存在, web网页的数据只允许该网页访问使用。

  localStorage 和 sessionStorage 

  客户端存储数据的两个对象为:

  • localStorage – 没有时间限制的数据存储
  • sessionStorage – 针对一个 session 的数据存储(关闭窗口,存储的数据清空

  了解完sessionStorage之后是不是很符合我们的需求呢?将数据存到 session中,管你前进后退还是刷新,数据依然在,关闭窗口后再进页面才会清空数据,那么完全符合需求啊,看到这玩意简直激动快要泪奔了!!!

  再理一下实现思路,①页面滚动,将滚动位置存到session中 ②再次进到页面中,到session中取出上次保存的浏览位置③滚动到对应位置

  这家伙简直好玩到嗷嗷叫啊,睁大眼睛看重点咯!

  这里只介绍setItem和getItem,当然还有什么removeItem删除key、clear清除所有的key/value操作。

  setItem存储value

 sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in");

  getItem获取value

 var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site"); //滚动时保存滚动位置

$(window).scroll(function(){ 
      

if($(document).scrollTop()!=0){ 
              
    sessionStorage.setItem("offsetTop", $(window).scrollTop());//保存滚动位置
   } });

//onload时,取出并滚动到上次保存位置

 


window.onload = function() { 
     
  var _offset = sessionStorage.getItem("offsetTop"); 
  $(document).scrollTop(offsetTop);
};

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202679.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午11:34
下一篇 2026年3月19日 下午11:34


相关推荐

  • 使用JS访问本地数据库「建议收藏」

    使用JS访问本地数据库「建议收藏」1前言有时候,数据业务比较大,比如查询百万级的数据,如果使用JSP查询数据库,JSP的返回结果一般放在域名后面返回给客户端,而返回结果的长度是有限制的,数据过长可能会丢失部分数据;另一方面数据量大,占用带宽大,网络延时较长。使用JS绕过后台Web服务器,直接访问本地数据库服务器,虽然会有些不安全,但却能够访问大数据,并且不占用带宽。2案例在本地SQLServer建立数据库tes…

    2022年5月22日
    42
  • 炒股“小龙虾”来了?3家金融数据终端大厂官宣“养虾”

    炒股“小龙虾”来了?3家金融数据终端大厂官宣“养虾”

    2026年3月14日
    2
  • 数字逻辑中的与或非异或的运算规律_执行逻辑与或非运算

    数字逻辑中的与或非异或的运算规律_执行逻辑与或非运算计算机中的逻辑运算又被称作为“布尔运算”,分别为:逻辑**与**运算、逻辑**或**运算,逻辑**非**运算,“逻辑**异或**运算。此外在门电路中还有:**同或**运算、**与非**运算、**或非**运算。共七种。……

    2022年10月12日
    4
  • 02 Cherry Studio 简介

    02 Cherry Studio 简介

    2026年3月12日
    2
  • java常见证书类型和密钥库类型

    java常见证书类型和密钥库类型一 证书类型 nbsp nbsp 1 证书概念 nbsp nbsp nbsp 证书是对现实生活中某个人或者某件物品的价值体现比如古董颁发见证书 人颁发献血证等通常证书会包含以下内容证书拥有者名称 CN 组织单位 OU 组织 O 城市 L 区 ST 国家 地区 C nbsp nbsp nbsp 证书的过期时间证书的颁发机构证书颁发机构对证书的签名 签名算法 对象的公钥等 nbsp nbsp nbsp nbsp 数字证书的格式遵循 X 5

    2026年3月17日
    2
  • golang 2021激活码【2021免费激活】

    (golang 2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    128

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号