首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

GWT 对 HTML5 storage 的支持和实现(1)

GWT 对 HTML5 storage 的支持和实现(1)

什么是 HTML5 StorageHTML5 Storage 分为 Session Storage 和 Local Storage,这里我们称为 HTML Storage 的实际上是一个称为   的标准,它原来曾是 HTML5 标准的一部分,但由于某些因素,现在它被独立出来。 某些浏览器厂商也称它为 本地存储(Local Storage),或者 DOM 存储。
Session Storage:用于本地存储一个会话中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此 Session Storage 不是一种持久化的本地存储,仅仅是会话级别的存储。
Local Storage:简单来说,它就是一种让网页可以把键值对存储在用户浏览器客户端的方法。像 Cookie    一样,这些数据不会因为您打开新网站,刷新页面,乃至关闭您的浏览器而消失。 而与 Cookie 不同的是,这些数据不会每次随着 HTTP    请求被发送到服务器端(当然如果您需要这么做,您可以自己编程实现)。因为这是 HTML5 规范的一部分,这一接口会被浏览器原生支持,不用依赖任何第三方插件。
为什么使用 HTML5 Storage从 Cookie 谈起最早的 Cookies 自然是大家都知道,问题主要就是太小,大概也就 4KB 。而且 IE6 只支持每个域名 20 个    Cookies,太少了。优势就是大家都支持,而且支持得还蛮好。很早以前那些禁用 cookies 的用户也都慢慢的不存在了,就好像以前禁用 Javascript    的用户不存在了一样。Web Storage 是 HTML5 API 提供一个新的重要的特性; 最新的 Web Storage 草案中提到,在 web 客户端可用 HTML    API,以 Key-Value 形式来进行数据持久存储; 目前主要的浏览器已经支持该功能; 常见的 web 客户端数据存储比较: HTML5 Web Storage 非常易于 Web 开发者使用,它提供了非常简单的获取或设置 Key-Value 对的 API; 支持的数据大小。
HTML5 一直强调的功能,就是在 Client 端可以暂存更多的信息,其实在 Client 端暂存数据并不是什么新鲜事,Cookie 就可以做到了,但 Cookie 在使用上有几个不便利的地方:
  • Cookie 在每个 HTTP request 送出时都会被送到 Server 端,不管您没有要用到 Cookie 中的信息,在某种程度上会拖慢执行的效能与浪费不必要的网络带宽。
  • Cookie 送出的数据本身并没有加密,因此除非我们用 SSL 一类的技术做加密,否则 Cookie 中不宜放任何重要的信息。
  • Cookies 最大才 4KB,不可能存太多数据
Web Storage 的优点:如果我们今天希望有更大的空间、更安全的保存、更少的带宽浪费,在 Client 端找个地方暂存我们想暂存的数据似乎就变得非常重要了,在 HTML5 的 Storage 技术推出前其实已经有一些技术逐步在实现这样的目标,但到了 HTML5 才算是统一标准并集大成,目前支持 HTML5 Storage 的浏览器及版本如下浏览器的支持除了 IE7及以下不支持外,其他标准浏览器都完全支持值得一提的是 IE 总是办好事,例如 IE7、IE6 中的 UserData 其实就是 JavaScript 本地存储的解决方案。通过简单的代码封装可以统一到所有的浏览器都支持 web storage。
之所以使用 Web Storage, 归纳起来有一下几方面的优势:
  • 存储空间更大
  • 独立的存储空间
  • 更丰富易用的接口
  • 减少网络阻塞
  • 明显缩短了页面显示时间
  • 可以缓存数据
  • 很快的读入缓存数据
  • 保存临时状态可以在无数据连接的情况下使用,并且能够在与服务器连接恢复后合并离线状态
返回列表