您的位置:首页 > 其它

Web存储

2015-10-11 18:16 225 查看
客户端存储的方式:
1、最简单且兼容性最佳:Cookie(但作为真正的客户端存储,其有很多致命伤。)
2、IE6及以上版本:userData Behavior
3、Firefox:globalStorage
4、Flash插件环境:Flash Local Storage
HTML5提出更理想的解决方案:如果存储复杂的数据,可使用Web Database(可像客户端程序一样使用SQL);存储简单的key/value(键值对),可使用Web Storage。

Cookie是HTML4中在客户端存储简单用户信息的一种方式,其使用文本存储信息(故安全性差),当有应用程序使用Cookie是,服务器端就会发送Cookie到客户端,客户端浏览器将保存该信息(易被黑客窃取)。下一次页面请求时,客户浏览器将会把Cookie发送到服务器。Cookie最典型的应用是用来保存用户信息、用户设置,密码记忆等(容量有限,上限4KB,不适合大量数据存储)。
就本地存储大小而言,IE的userData最少也能支持640KB,IE8后已经支持DOM Storage,但只支持IE。Flash用得最多,支持容量为100KB。之后Google推出Gears不限制容量,但需要额外安装插件。而HTML5现在至少支持5MB,对于本地存储而言已经够用,也有的浏览器会让用户自行设置。

HTML5的Web Storage提供两种在客户端存储数据的方法:localStorage和sessionStorage。
localStorage:无时间限制,可将数据持久的保存在客户端的本地硬盘或其他存储器,除非主动删除,否则数据永远不会过期。
sessionStorage:针对一个session的数据存储,即将对象存储在session对象中。随着浏览器关闭,数据自动被删除。

Web Storage相对Cookie的优点:1.Web Storage提供易于使用的API接口,只需设置键值即可使用;2.在存储容量方面可根据用户分配的磁盘进行存储,能够在每个用户域存储5~10MB的内容,用户不仅可以存储session,还可以存储许多信息,如设置偏好,本地化的数据和离线数据等;3、Web Storage还提供了使用JavaScript编程的接口,开发者可以使用JavaScript客户端脚本实现许多以前只能在服务器端才能完成的工作。

WebStorage缺点:浏览器会为每个域分配独立的存储空间,即脚本在域A中是无法访问到域B中的存储空间的,但是浏览器不会检查脚本所在的域与当前的域是否相同,即在域B中嵌入域A中的脚本依然可以访问域B中的数据;存储在本地的数据未加密而且永远不会过期,极易造成隐私泄露。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: