跨浏览器的本地存储 Ⅰ

原文: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() —— 设置指定的属性值。

备注:

  1. 从安全方面考虑,一个 userData 存储区只能用于同一目录和对同一协议进行存储。
  2. 如果使用 userData behavior 不正确可能会对你的应用造成危害,userData 存储区中的数据没有加密因而不安全的。任何可以访问 UserData 保存磁盘的应用都可以访问该数据,所以,推荐不要保存敏感的数据,比如信用卡号,详细:《Security Considerations: DHTML and Default Behaviors》
  3. userData behavior 会跨 session 存储信息到存储区,这提供了动态的数据结构和比 cookie(一般 4KB) 更大的容量。userData 存储区的容量依赖于 domain 的安全域。下表显示的是 userData 存储最大容量,对单独文档和整个域名的所有文档都适用,但基于安全域。
    Security Zone Document Limit (KB)  Domain Limit (KB)
    Local achine 128 1024
    Intranet 512 10240
    Trusted Sites 128 1024
    Internet 128 1024
    Restricted 64 640
  4. 如果设置 userData behavior 到 html、head、title 或者 style 对象上,当 save 和 load 方法被调用时会出错。如果必须设置到 style 中,可以设置内联或者文档头,例如:
    <style>
        .storeuserData {behavior:url(#default#userData);}
    </style>
  5. 对于 userData behavior 来说 ID 是可选的,但是如果有,则会改善执行性能。
  6. userData 可以将数据以 XML 格式保存在客户端计算机上,一般保存在 C(WIN 系统盘):\Documents and Settings\XXX\UserData\ 文件夹下。
  7. userData 数据一直存在,除非人为删除或者用脚本设置该数据的失效日期(expires)。

大部分翻译自:《userData Behavior》

时间: 2025-01-30 07:52:49

跨浏览器的本地存储 Ⅰ的相关文章

web基于浏览器的本地存储方法应用_javascript技巧

在客户端存储数据时,我们一般都用cookie(不敏感数据),但是在客户端越来越富的今天,cookie可存储的量(每个域最大4k)实在是小. 在HTML5中有localStorage可使用,但是这就抛弃了IE8-.为了兼容,我们可以翻出IE很久以前就搞的一个存储方法: 给一个元素添加一个特殊的样式url(#default#userData),之后就可以通过setAttribute和getAttribute来存取键值对形式的数据了. 要注意的一点就是在数据改变后要使用save方法,而数据加载初期要l

js浏览器本地存储store.js介绍及应用_javascript技巧

store.js - 轻松实现本地存储(LocalStorage) store.js 是一个兼容所有浏览器的 LocalStorage 包装器,不需要借助 Cookie 或者 Flash.store.js 会根据浏览器自动选择使用 localStorage.globalStorage 或者 userData 来实现本地存储功能. store.js 提供非常简洁的 API 来实现跨浏览器的本地存储功能: 复制代码 代码如下: store.set('username', 'marcus') stor

Javascript使用浏览器本地存储功能

  在日常的操作过程中,在所难免的需要利用Javascript在用户浏览器中本地存储一些数据,以达到一些不能用服务器来识别的功能,如识别用户的第二次访问等.常用的方法有cookie,IE浏览器的userData,以及localStorage等,由于userData只有IE支持,它的可扩展性并不大. cookie: cookie的好处是用户每请求一次服务器数据,cookie则会随着这些请求发送到服务器,服务器脚本语言如PHP等能够处理cookie发送的数据,可以说是非常方便的.但是它的缺点也显而易

html5之Localstorage本地存储

Localstorage本地存储基本用法   如何创建和访问 localStorage   <script type="text/javascript"> localStorage.lastname="Smith"; document.write(localStorage.lastname); </script> 上面就创建了一个localStorage.   我们再来做一个刷新页面,增加访问次数的功能!很简单,代码如下:   <scr

js仿微博实现统计字符和本地存储功能_javascript技巧

随着移动设备和Web应用的普及,为了更好的便于用户的使用,对于网页或应用程序的用户体验要求就越来越高,确实是这样,作为用户更喜欢选择用户体验效果好的网站或应用程序,所以作为开发者的我们就需要开发出更人生化的应用程序了. 相信许多人有使用微博的经验,像微博这样的社交平台,好的用户体验就变得尤其重要了. 例如:我们在发微博时,文本框会实时地提示我们剩余字符数,这样人性化的提示方便了用户知道微博字数的限制,同时也限制了用户的输入字数. 有一句话我们要牢记在心的是:凡是输入,必有限制:凡是输入,必须校验

html5中Localstorage本地存储的例子

在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了.二者用法完全相同,这里以localStorage为例. if(window.localStorage){  alert('This browser supports localStorage'); }else{  alert('This browser does NOT supp

HTML5移动应用开发第2章:移动web应用的本地存储

在本文中,您将使用最新 Web 技术开发 Web 应用程序.这里的大多数代码只是 HTML.JavaScript 和 CSS - 任何 Web 开发人员的核心技术.需要的最重要的东西是用于测试代码的浏览器.本文中的大多数代码将运行在最新的桌面浏览器上,例外的情况会指出来.当然,还必须在移动浏览器上进行测试,您肯定希望最新的 iPhone 和 Android SDK 支持这些代码.本文中使用的是 iPhone SDK 3.1.3 和 Android SDK 2.1. 本地存储基础 Web 开发人员

如何搭建自动化、跨浏览器的 JavaScript 单元测试

本文讲的是如何搭建自动化.跨浏览器的 JavaScript 单元测试, 我们都知道在各个不同的浏览器环境里测试代码是很重要的,并且在大多数时候,我们这些 Web 开发者在这一点上还是做的不错的 -- 至少在第一次发布项目的时候是这样. 然而我们每次更改代码之后的测试工作,却做的不尽人意. 我深切地知道我本人就是这样的 -- 我早就把"学习怎样搭建自动化.跨浏览器的 JavaScript 单元测试"写在 To-do List 上了,但每当我坐下来想要真正的去解决这个问题的时候,我却不得不

HTML5 – 本地存储

HTML5 Web Storage API 让在本地存储数据成为了可能,而且可以存储 5M 的数据,这 5M 的空间可供一个域任意使用.注意是一个域,这也就是说所保存的数据是不可跨域访问的. 我一向喜欢在实践中学习新的知识,今天也不例外,我利用 loalStorage 做了一个便签小应用,数据存放在浏览器中.  怎么样,还不错吧?下面就用这个例子的开发流程来介绍 localStorage 吧! 起步 在这里,我就不在粘贴 HTML 和 CSS 代码了,如果你想在本地运行这个例子,我将在文章末尾给