H5 js中的localStorage与sessionStorage
来源:互联网 发布:开票产品利润算法 编辑:程序博客网 时间:2024/06/05 08:39
首先明确的一点是:
localStorage与sessionStorage都是存储方式;是H5版本提供的两种存储方式,在此之前使用cookie来存储数据,他们都是本地存储数据,不是存储在服务器端的
localStorage与sessionStorage的使用与语法上都几乎一模一样,唯一不同的是:
- localStorage 在本地存储的时间是没有限制的,只要你愿意,他可以永远的存储在你本地;
- sessionStorage只有当用户关闭浏览器窗口之后,数据才会被删除
接下来介绍几种常用的接口;
—-setItem()与getItem()的使用
sessionStorage.setItem('key','value');localStorage.setItem('key','value');
在语法上两者都是键值对的形式,key就是你要存储数据的名称(也就是键),value就是存储数据对应的值;
比如我们要存储当前用户点击某个区域的次数:
<div class="click-box"></div><script> window.onload = function(){ var clickBox = document.querySelector('.click-box'); var aTimes; //获取本地存储的数据; var oTimes = sessionStorage.getItem('aTimes'); if(aTimes !== null){ console.log(oTimes); }else{ oTimes = 0; } //点击存储数据 moveBox .onclick = function(){ oTimes = parseInt(oTimes)+1; sessionStorage.setItem('aTimes',oTimes); } }</script>
上面的示例中,点击的时候执行一次 sessionStorage.setItem(‘aTimes’,clickTimes),只要是key值相同的数据,新的数据会覆盖之前存储的数据;
这是sessionStorage与localStorage机制;这一方面同时也体现了这两个方法的‘改’是怎么操作的,只要重新调用覆盖即可;
想要查看有没有成功,只需要点击几次点击的区域,然后刷新浏览器就可以看到结果了,即console.log(oTimes)结果;
想要尝试localStorage的朋友,只需要将上面列子中的sessionStorage改成localStorage就行;
可以看到上面除了setItem()之外还出现了一个getItem();
getItem()的作用是取sessionStorage中的数据的,如果你想获得sessionStorage中的数据的话,你完全可以使用它;
前提是你得知道数据的键名,只需要将键名放进getItem()里面就行了,即sessionStorage.getItem(‘key’);
新增,获取,修改都有了,自然会有删除了:
—-removeItem()与clear();
removeItem()的作用是删除某一指定键名的数据;
sessionStorage.removeItem('key');//例如删除上面的点击次数;sessionStorage.removeItem('aTimes');// undefined
clear()作用是直接清空sessionStorage;
sessionStorage.clear();
—-valueOf()与key()
valueof()的作用是读取sessionStorage上的所有数据;
var date = sessionStorage.valueOf();console.log(date) //
你可以去尝试使用一下;
key()的作用是读取指定索引值上面的键的值;
var date = sessionStorage.key(1);console.log(date) //
hasOwnProperty()
hasOwnProperty()的作用是判断sessionStorage中是否存在某一数据;
例如上面的例子可以改成:
if(sessionStorage.hasOwnProperty('oTimes')){ console.log(oTimes);}else{ oTimes = 0;}
sessionStorage与localStorage用途:
这里简单介绍两个地方:
一、记录滚动条位置:
想来做过微信开发的同行都会发现,微信返回页面的时候,之前的页面会刷新,这就比较尴尬了;
例如浏览新闻列表的时候,滚动到了很后面,点击进去看了,看完回来了,结果发现,当前滚动条的位置居然不是在刚刚翻的位置,又要重新往下翻到之前看到的地方,简直是崩溃式的感觉;
这个时候sessionStorage就体现出他的价值了;
//首先判断sessionStorage中是否存在滚动条位置的记录;var sclTop;var oSclTop;if(sessionStorage.hasOwnProperty(sclTop)){ oSclTop = sessionStorage.getItem('sclTop'); //有sclTop,当页面加载的时候,滚动到sclTop值的位置 $(docuemnt).scrollTop(oSclTop);}else{ sclTop = 0;}//当用户翻阅的时候,记录滚动条位置;$(document).scroll = function(){ oSclTop = $(document).scrollTop(); sessionStorage.setItem('sclTop',oSclTop );}
二 保存由后台传过来的数据;
举个例子,比如当我们打开页面的时候,登录了,获取到了用户名,年龄等信息,我们可以将这些数据先用过sessionStorage存下来,之后如果还有用到这些信息的时候,直接调出来就行,这样就避免了大量的向后台请求的操作;
其实localStorage与sessionStorage用途有很多,这里就不在一一赘述了;
微信搜索关注公众号 【大前端js】,回复vue教程,react教程,webpack实战等等,获得不同的视频教程,大量视频教程等你来拿;阅读公众号最新一篇文章获取更多视频
关于localStorage与sessionStorage的用法与用途就写到这里了;
手打不易,转载时请注明转载出处,感谢
- H5 js中的localStorage与sessionStorage
- h5 sessionStorage localStorage存储
- H5开发:详说 Cookie, LocalStorage 与 SessionStorage
- 【H5】localStorage、sessionStorage用法总结
- h5本地存储localStorage,sessionStorage
- 【H5】localStorage、sessionStorage用法总结
- H5开发:sessionStorage和localStorage
- js localStorage 和 sessionStorage
- sessionStorage与localStorage
- localStorage与sessionStorage
- sessionStorage与localStorage
- sessionStorage与localStorage
- Cookie, LocalStorage 与 SessionStorage
- localStorage与sessionStorage
- sessionStorage与localStorage
- Cookie, LocalStorage 与 SessionStorage
- localStorage与sessionStorage
- Cookie, LocalStorage 与 SessionStorage
- 用户注册(request,get和post中文乱码)
- java寻找迷宫路径
- 关闭”xx程序已停止工作”提示窗口
- MyEclipse配置
- android studio 最新3.0 kotlin与databinding 结合使用报错。
- H5 js中的localStorage与sessionStorage
- MySQL和Oracle差异
- unity编辑器扩展--AssetBundle菜单
- python matplotlib画图
- Oracle(ALL
- 问答法学习单例模式
- php7.0.8 + Apache2.4 + MySQL5.7.13 + phpMyAdmin4.6.3
- DBA--创建索引
- 增加切片层级