(1)在存储用户数据的时候,因为cookie可以存储的数据比较小才4KB左右
所以也可以考虑使用sessionStorage来存储,大小限制为2M左右
(2)该技术和localStorage是h5推出的,因此在使用的时候,需要考虑到兼容性的问题
(3)简单介绍和使用:
localStorage- 没有时间限制的数据存储,生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
sessionStorage会话存储技术(session-会话)仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。
//添加操作
window.sessionStorage.setItem("name",oInput.value)
//获取操作
window.sessionStorage.getItem("name")
//更新操作
window.sessionStorage.setItem("name",oInput.value)
//删除操作
window.sessionStorage.removeItem("name")
//清空操作
window.sessionStorage.clear()
但是请回忆一下这样的场景,打开某个APP,弹出一个购买会员的广告,果断关掉,然后前进、后退、刷新,广告都不出来了,
关掉APP后重新打开,广告又来了~~
这时如果明白sessionstorage,很快也就会清楚这个功能怎么实现的
实现思路
①查询sessionStorage是否有关闭广告标记 sessionStorage.setItem("key", "value")
②根据标记隐藏或者显示广告 sessionStorage.getItem("key")
这样,每次关闭浏览器或者APP,广告都会重新弹出来
其它应用举例
阅读文章时,不小心刷新页面,会跳到上次浏览位置
①页面滚动,将滚动位置存到session中(如果有分页,则同时存储页码)
②再次进到页面中,到session中取出上次保存的浏览位置和存储的页码
③(如果有分页,先打开响应页码),滚动到对应位置
$(window).scroll(function(){
if($(document).scrollTop()!=0){
sessionStorage.setItem("offsetTop", $(window).scrollTop());//保存滚动位置
}
});
window.onload = function()
{
var _offset = sessionStorage.getItem("offsetTop");
$(document).scrollTop(offsetTop);
};
//获取localStorage存储数据
window.localStorage.getItem(name)
//设置localStorage存储数据
window.localStorage.setItem(name, content)
//删除localStorage存储数据
window.localStorage.removeItem(name)
网友评论