前端开发HTML5本地存储总结
前端开发中,我们经常接触到浏览器,谈到浏览器,自然会想到有些页面之间是怎么共享数据的,怎么保存数据的,今天就来解决这个用户痛点。SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对!。 区别在于前两者属于WebStorage,创建它们的目的便是存储客户端数据。 而Cookie早在网景公司的浏览器中就开始支持,最初目的是为了保持HTTP的状态。
概念的异同
Cookie是存储在客户端的小型文本文件,可以包含若干键值对,每个键值对可以设置过期时间(默认过期时间为关闭浏览器时)。 Cookie会在每次发送HTTP请求时附加到Cookie
头字段,服务器以此得知用户所处的状态。 在HTTP标准中,规定Cookie至少要有4K,至少支持300项Cookie,每个域名至少支持20项。
HTTP中Cookie的规范可以参考:读 HTTP 协议。
LocalStorage和SessionStorage都是本地存储,不会被发送到服务器上。同时空间比Cookie大很多,一般支持5-10M。 与Cookie类似,每个域名下会有不同的localStorage和SessionStorage实例,而且localStorage可以在多个标签页中互相访问。 其中LocalStorage没有过期时间,除非手动删除它会一直存在。而SessionStorage在浏览器会话结束时(关闭标签页,不包括刷新和跳转)清空。
注意SessionStorage中的Session指的是浏览器会话,而非服务器端通过Cookie实现的Session。参考:Cookie/Session的机制与安全
Cookie的使用
Cookie/Session的机制与安全中提到了服务器可以在HTTP响应中设置set-cookie
字段来设置Cookie。 事实上客户端也可以操作Cookie,比如之前的电商网站会使用Cookie来存储购物车信息。 客户端JavaScript也可以通过浏览器提供的document.cookie
来操作Cookie,但document.cookie
整个是一个字符串, 所以操作较为复杂,Web开发中一般倾向于封装Cookie的读写操作:
通过jQuery-Cookie插件可以更方便地操作Cookie:
Storage的使用
LocalStorage/SessionStorage提供的存储也是基于字符串的键值对。可以通过setItem
,getItem
来访问其中的存储项:
因为它只能存储字符串,要存JSON只能序列化为字符串:
转载请注明:前端开发HTML5本地存储总结 - 编程知识库
您可能还会对这些文章感兴趣
2016-12-16 577次前端开发HTML5本地存储总结
前端开发中,我们经常接触到浏览器,谈到浏览器,自然会想到有些页面之间是怎么共享数据的,怎么保存数据的,今天就来解决这个用户痛点。SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对!。 区别在于前两者...
2016-12-15 1,277次HTML5画出五星红旗
源码: <!DOCTYPE html> <html> <head> <meta charset=”gbk”> <title>中国标准国旗</title> </head> <body> <canvas id=”canvas” width=”600″ height=”400″&g...
2015-04-30 3,573次css3实现图片比例缩放,左右垂直居中显示
实现图片在指定容器内等比例缩放,并控制中上下左右居中,以前可以通过javascript 加css2 的办法来控制。 随着css3的普及,现在介绍一种单纯通过css来进行控制。 <!html> <head> <meta charset="utf-8"> <title> css3 图片等...
2014-11-28 4,460次css3几何图形、多边图形shape研究
前言 估计大家在日常工作中都会用到css形状,但是目前天朝中使用到最多的估计就是圆(circle)、椭圆(ellipse)、各种三角形形状,但是你肯定很少看见过用几何图形或者多边图形。假如你不懂什么叫做几何图形,那么请前往百度百科,就算是我们用:after :before 这些...
大家正在看
- linux 系统中Mysql 进程占用cpu过高的解决
- 二类电商是什么意思? 二类电商有哪些?暴利二类电商还好做吗?
- 【二类电商广点通投放指南】二类电商广点通投放值不值
- 密码保护:支付宝突破微信封锁唤起支付宝代码
- Host is not allowed to connect to this MySQL server解决方法
- 密码保护:移动端js自动复制代码
- linux数据库调优,WordPress MySQL占用cpu高数据库优化
- 2017 年十大网页设计趋势
- 网页端的VR实现离我们还远么?
- 最完整的Chrome浏览器客户端调试大全
- iPhone用户人均每天遭电话骚扰1次
- 3G电子化销售服务系统
- Java WeakReference的理解与使用
- 搞清楚 Python traceback