storage

简介: 在HTML5出现之前,如果开发者需要在客户端存储少量的数据,只能通过cookie来实现,但是cookie存在几个不足点:每个域名下cookie的大小限制在4KB。cookie会包含在每个http请求中,这样会导致发送重复的数据。cookie在网络传输过程中没有加密,存在安全隐患。在HTML5新增了Web storage功能,Web Storage官方建议为每个网站是5MB,能存储比cookie更多的数据,并且具有比cookie更强大的功能。Web Storage现在已经得到了Firefox、Opera、Chrome、Safari各主流浏览器的支持。

在HTML5出现之前,如果开发者需要在客户端存储少量的数据,只能通过cookie来实现,但是cookie存在几个不足点:

每个域名下cookie的大小限制在4KB。
cookie会包含在每个http请求中,这样会导致发送重复的数据。
cookie在网络传输过程中没有加密,存在安全隐患。
在HTML5新增了Web storage功能,Web Storage官方建议为每个网站是5MB,能存储比cookie更多的数据,并且具有比cookie更强大的功能。Web Storage现在已经得到了Firefox、Opera、Chrome、Safari各主流浏览器的支持。

Web Storage又分为Session Storage和Local Storage:

Session Storage:与session类似,Session Storage保存的数据生存期限与Session期限相同,用户Session结束时,Session Storage保存的数据也就消失了。

Local Storage: Local Storage保存的数据一直在本地,除非用户或程序显式地清楚,否则这些数据会一致存在。

1.服务器端和客户端的存储

    服务器端:
            1. 内存存储(临时)application session request pageContext

            2. redis缓存,队列,16w次每秒,可持久化,可缓存

            3. 数据库持久化 mysql(23秒每次) mssqlserver oracle db2...

    客户端:
            1. cookie以文件的形式明文存储数据,不安全,最大存储单个数据4kb

            2. storage: 存储功能,相当于小型的数据库.(存储功能是在浏览器中)

                    "永久保存": 只要不对浏览器进行清理,本地存储会永久保存数据.

2.localStorage/sessionStorage
使用HTML5可以在本地存储用户的浏览数据。

早些时候,本地存储使用的是 cookie。但是Web存储需要更加的安全与快速。
这些数据不会被保存在服务器,只用于用户请求网站数据情况。
可以存储大量的数据,而不影响网站的性能。

数据以 键/值 对存在,web网站的数据只允许该网页访问使用。

只能存储String类型

key:String
value:Object

1.本地存储器
2.会话存储器(属于本地存储器)

区别:
localStorage 和 sessionStorage 生命周期不同
localStorage永久有效
sessionStorage跟会话有关
实际开发中发现跟会话没有关系,当浏览器关闭之后,失效

api:

1、存储:localStorage.setItem(key,value)

如果key存在时,更新value

2、获取:localStorage.getItem(key)

如果key不存在返回null

3、删除:localStorage.removeItem(key)

一旦删除,key对应的数据将会全部删除

4、全部清除:localStorage.clear()

某些时候使用removeItem逐个删除太麻烦,可以使用clear,执行的后果是会清除所有localStorage对象保存的数据

5、遍历localStorage存储的key

.length 数据总量,例:localStorage.length

.key(index) 获取key,例:var key=localStorage.key(index);

6、存储JSON格式数据

JSON.stringify(data) 将一个对象转换成JSON格式的数据串,返回转换后的串

JSON.parse(data) 将数据解析成对象,返回解析后的对象

备注:localStorage存数的数据是不能跨浏览器共用的,一个浏览器只能读取各自浏览器的数据,储存空间5M。

3.总结
存储/取出数据:

localstorage.name = "tanjw"//可以利用json的方法将对象转为字符串,方便存取使用。
localstorage.name //就取出了

有效期:

localstorage,永久存储(除非手动删除掉)
seesionstorage,临时存储,窗口关闭就被自动删除

作用域:
localstorage:要满足同源策略
seesionstorage除了受到上述限制外,还会受到文档源(窗口,即不是同一窗口不能访问,即使是同一文件)的限制

API:
localstorage.setItem(key,value);
localstorage.getItem(key);
localstorage.remove(key);
localstorage.clear();

目录
相关文章
|
存储 安全
storage
早些时候,本地存储使用的是 cookie。但是Web存储需要更加的安全与快速。 这些数据不会被保存在服务器,只用于用户请求网站数据情况。 可以存储大量的数据,而不影响网站的性能。
124 0
|
JavaScript 前端开发
|
关系型数据库 Oracle
|
JavaScript 前端开发 内存技术
|
存储 数据库 文件存储