HTML5 web存储有两个重要对象:
- localStorage - 没有时间限制的数据存储
- sessionStorage - 针对一个 session 的数据存储(关闭窗口,存储的数据清空)
一般涉及到浏览器内状态存储时,首先会想到cookie。
但是请回忆一下这样的场景,打开某个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);
};