跨浏览器的本地存储 Ⅰ
http://www.itjxue.com 2015-08-07 22:21 来源:未知 点击次数:
原文:http://www.planabc.net/2008/08/05/userdata_behavior/
现在最流行的本地存储莫过于 cookie 的应用,但 浏览器对cookie有很多限制 ,最大的限制在于其对cookie 总大小,仅为 4K 左右(包括名(name)、值(value)和等号)。
对于复杂一点的应用和需求,仅有的 4K 大小还是有点相形见绌,其实很多浏览器(IE、Firefox、Safari)本身也提供了自己的本地存储的功能,或许在特定的环境下能满足我们。
一、userData behavior
浏览器支持:IE5.0 或以上
基本语法:
- XML:
<Prefix: CustomTag id=sID style=”behavior:url(’#default#userData’)” /> - HTML:
<ELEMENT style=”behavior:url(’#default#userData’)” id=sID>
object.style.behavior = “url(’#default#userData’)” - Script:
object.addBehavior (”#default#userData”)
属性:
- expires —— 设置或者获取 userData behavior 保存数据的失效日期。
- XMLDocument —— 获取 XML 的引用。
方法:
- getAttribute() —— 获取指定的属性值。
- load(object) —— 从 userData 存储区载入存储的对象数据。
- removeAttribute() —— 移除对象的指定属性。
- save(object) —— 将对象数据存储到一个 userData 存储区。
- setAttribute() —— 设置指定的属性值。
备注:
- 从安全方面考虑,一个 userData 存储区只能用于同一目录和对同一协议进行存储。
- 如果使用 userData behavior 不正确可能会对你的应用造成危害,userData 存储区中的数据没有加密因而不安全的。任何可以访问 UserData 保存磁盘的应用都可以访问该数据,所以,推荐不要保存敏感的数据,比如信用卡号,详细:《Security Considerations: DHTML and Default Behaviors》
- userData behavior 会跨 session 存储信息到存储区,这提供了动态的数据结构和比 cookie(一般 4KB) 更大的容量。userData 存储区的容量依赖于 domain 的安全域。下表显示的是 userData 存储最大容量,对单独文档和整个域名的所有文档都适用,但基于安全域。
- 如果设置 userData behavior 到 html、head、title 或者 style 对象上,当 save 和 load 方法被调用时会出错。如果必须设置到 style 中,可以设置内联或者文档头,例如:
<style>
.storeuserData {behavior:url(#default#userData);}
</style> - 对于 userData behavior 来说 ID 是可选的,但是如果有,则会改善执行性能。
- userData 可以将数据以 XML 格式保存在客户端计算机上,一般保存在 C(WIN 系统盘):\Documents and Settings\XXX\UserData\ 文件夹下。
- userData 数据一直存在,除非人为删除或者用脚本设置该数据的失效日期(expires)。
大部分翻译自:《userData Behavior》
(责任编辑:IT教学网)
上一篇:制作网页应该注意的5个问题
下一篇:无法查看网页的源文件该怎么办?