关于H5本部缓存localStorage,sessionStorage

摘要:
但是cookie不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得cookie速度很慢而且效率也不高。

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 没有时间限制的数据存储 一直存在除非用户手动清除缓存;是基于域的,任何该域下的所有页面都可访问localStorage
  • sessionStorage - 针对一个 session 的数据存储 浏览器关闭时清除

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

使用方法:

localStorage.setItem("menuTitle", arrDisplay);
sessionStorage.getItem('key_null')
sessionStorage.removeItem('page')
localStorage.clear()
监听本地存储发生变化的函数
window.addEventListener("storage",function(e){本地存储发生变化时执行的函数XXXXXX},true);

在做项目的过程中遇到少有的safari浏览器 H5本地存储不支持的情况,刚开始以为是手机型号和IOS版本的关系,经过对比排查发现是手机开启了无痕浏览的原因导致的,查了一下总结如下:

手机Safari浏览器中具体表现是:

  • localStorage对象仍然存在
  • 但是setItem会报异常:QuotaExceededError
  • getItem和removeItem直接忽略

Safari中控制台截图
关于H5本部缓存localStorage,sessionStorage第1张

判断浏览器是否无痕浏览模式

if (typeof localStorage === 'object') {
    try{
        localStorage.setItem('localStorage', 1);
        localStorage.removeItem('localStorage');
        return true;
    } catch(e) {
        //Storage.prototype._setItem =Storage.prototype.setItem;
        //Storage.prototype.setItem = function() {};
        alert('不支持本地存储');
        return false;
    }
}

免责声明:文章转载自《关于H5本部缓存localStorage,sessionStorage》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇程序员,做技术神马的,请对自己好一点!(转)点击按钮变色,松开按钮恢复原来的颜色下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Quick BI产品核心功能大图(四):Quick引擎加速十亿数据亚秒级分析

​简介:随着数字化进程的深入,数据应用的价值被越来越多的企业所重视。基于数据进行决策分析是应用价值体现的重要场景,不同行业和体量的公司广泛依赖BI产品制作报表、仪表板和数据门户,以此进行决策分析。 在利用BI产品进行数据分析过程中,数据处理“慢”会为业务带来很多的困扰,可以想象一下: 给老板看的报表加载展示非常慢,有的时候还会崩掉,本想做好向上汇报,但却...

koa2静态资源缓存策略

文章原文: https://www.cnblogs.com/yalong/p/15211975.html 缓存对于前端性能优化来说有极大好处,这里总结下目前感觉还不错的缓存策略 一. 静态资源启动gzip压缩 这里不是在server端开启gzip, 而是在 webpack 打包的时候把静态资源进行gzip压缩,大大减轻了服务器压缩gzip的压力,大大减少传...

干货|java缓存技术详解

一、缓存是什么? 请点击此处输入图片描述 Cache ①高速缓冲存储器,其中复制了频繁使用的数据以利于快速访问。 ②位于速度相差较大的两种硬件/软件之间,用于协调两者数据传输速度差异的结构 二、缓存有哪几类? 1、基于web应用的系统架构图 请点击此处输入图片描述 2、在系统架构中,不同层级之间为了加快访问速度,缓存都可以存在。 操作系统磁盘缓存-&g...

Net分布式系统之五:C#使用Redis集群缓存

本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层。 一、背景 系统考虑到高并发的使用场景。对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决。对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应用服务层和数据层之间加入缓存机制提升性能。业界缓存组件有Redis、Memcached...

浏览器缓存知识小结及应用

浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可避免的一大问题,所以在产品开发的时候我们总是想办法避免缓存产生,而在产品发布之时又在想策略管理缓存提升网页的访问速度。了解浏览器的缓存命中原理,是开发web应用的基础,本文着眼于此,学习浏览器缓存的相关知识,总结缓存避免和缓存管理的方法,结合具...

nginx缓存静态资源,只需几个配置提升10倍页面加载速度

nginx缓存静态资源,只需几个配置提升10倍页面加载速度 首先我们看图说话 这是在没有缓存的情况下,这个页面发送了很多静态资源的请求: 1.png 可以看到,静态资源占用了整个页面加载用时的90%以上,而且这个静态资源还是已经在我使用了nginx配置压缩以后的大小,如果没有对这些静态资源压缩的话,那么静态资源加载应该会占用这个页面展示99%以上的时...