客户端存储技术进展:PersistJS的发布与MySpace选用Gears

2008 年 6 月 04 日

Paul Duncan 上周发布了 PersistJS 。它是一个在客户端进行数据存储的 JavaScript 框架。这种存储主要针对的是那些可以离线运行的 Web 应用程序。与其它客户端存储框架相比,PersistJS 有一些优点。

为什么不只使用 cookie?

一直以来,Cookie 是客户端存储技术中的传统解决方法。然而,相对于像 PersistJS 这样越来越流行的框架来说,使用 cookie 还是有一些不好的地方。比如,cookie 被限制在 4k 字节内。在每个 HTTP 处理中都要发送 cookie 会浪费带宽,而且在 cookie 的创建和修改也都比较复杂。 ### 是什么让 PersistJS 更好?

  • 很小(gzip 压缩之后只有 3k)
  • API 一致,与所用浏览器无关
  • 无须浏览器插件和其它库
  • 当所用浏览器不支持时,会退而使用 cookie
  • 声称支持 IE、Firefox 和 Safari 的新版本

PersistJS 也采用兼容性测试的策略,而没有采用浏览器测试。也就是说,并不是去检查是否支持某一特定版本的 IE 浏览器,而是去检查在所用 IE 的版本中是否对所用到的每个调用进行支持。 例如,对某个特定调用未能进行支持的浏览器,不一定会立刻被拒绝。 ### 用法示例

在客户端存储中保存数据就像下面的代码一样简单: <pre id="pxtb16">var store = new Persist.Store('My Data Store');<br id="pxtb17"></br>var data = "some arbitrary data of varying length";<br id="pxtb18"></br>store.set('saved_data', data);<br id="pxtb19"></br> 查看数据需要回调函数,但也非常简单: <pre id="pxtb20">store.get('saved_data', function(ok, val) {<br id="pxtb21"></br> if (ok) alert('saved data = ' + val);<br id="pxtb22"></br>});<br id="pxtb23"></br>### 客户端存储的其他方案

Dojo Storage Google Gears 也提供了客户端存储的功能。但这些依靠浏览器插件的方法也有问题,并不是人人都在浏览器里安装对应插件的。

还有其他几个不同之处也值得注意。

Dojo Storage

  • 优点:配备的文档较全,有较大的用户基础
  • 缺点:如果安装有 Flash 插件,只对 Internet Explorer 进行支持
  • 缺点:不支持基于 WebKit 的浏览器 (像 Safari)
  • 缺点:运行时还需要其他 Dojo 库

Google Gears

  • 优点:有 Google 作支持,像 Dojo 一样,配备的文档较全
  • 缺点:还没有广泛部署
  • 缺点:插件没安装就不能运行

除了存储之外, Gears 还支持客户端搜索。本周在旧金山的 Google I/O 大会上,MySpace宣布:他们正在使用Gears 进行消息搜索。一直以来,用户必须挨个遍览所有消息才能找到想要的内容。采用Gears 后,在客户端也可以进行全文搜索 了。搜索过程依然是实时交互进行,根据用户输入的查询内容返回相应的查询结果。

值得注意的是,PersistJS 可以支持包括Gears 在内的大量后端技术。既然是这样,使用PersistJS 的优势就在于API 是一致的:如果后端发生了变化,代码无须进行改动。

查看英文原文: Client Side Storage Momentum Continues with PersistJS and MySpace Adoption of Gears

2008 年 6 月 04 日 03:471014

评论

发布
暂无评论
发现更多内容

深入浅出Vert.x架构

dinstone

都2020了,你的APP还不能运行小程序?

fino星君

小程序生态 私有小程序技术

架构师训练营高可用作业

qihuajun

牛逼操作,ThreadLocal还能当缓存用

简爱W

Java

我,一个当代普通大学生的自述

有梦的咸鱼

个人成长 大学生日常 个人感悟 讨论写作

面试28k职位,老乡面试官从HashCode到HashMap给我讲了一下午!「回家赶忙整理出1.6万字的面试材料」

小傅哥

数据结构 hashmap 面试题 面试官 红黑树

oeasy 教您玩转linux010101查看内核uname

o

第11周作业

小胖子

架构师训练营高可用学习总结

qihuajun

我能讲明白哪些技术?

escray

学习 面试 沟通 面试现场

JavaScript基础语法

Java

博文翻译丨提高编程技能的关键(The Key To Accelerating Your Coding Skills 中文翻译)

Liuchengz.

学习 程序员 翻译

oeasy教您玩转linux010102查看发行版

o

一款高仿 Eyepetizer | 开眼短视频的 MVVM 开源项目

vipyinzhiwei

android kotlin 短视频 eyepetizer 开眼

【数据结构与算法】力扣实战之移动零、盛最多的水、爬楼梯

三钻

算法 前端 LeetCode 数据结构与算法

学会反射后,我被录取了(干货)

cxuan

Java 后端 反射

Flink中的数据传输-5

小知识点

scala 大数据 flink

刘华:弹性便是一切

刘华Kenneth

架构 DevOps 敏捷 弹性

Spring的Controller是单例还是多例?怎么保证并发的安全

简爱W

Java 约束注解

HeGuang

MySQL系列(二):MySQL是怎么处理并发操作的?

z小赵

MySQL 数据库 事务

LeetCode题解:25. K 个一组翻转链表,迭代,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

国产数据库的经济民族

郭华

数据库 商业

这么理解业务架构就对了!

周金根

BIZBOK 业务架构

如何提升系统可用性

码猿外

可用性 持续交付 工程能力 团队文化

我在项目中不可或缺么?

escray

学习 面试 面试现场

透过兴趣爱好看本质

escray

学习 面试现场

乘风破浪,Spring Boot入门

Simon郎

Spring Boot

阿里内部流传的Mybatis笔记终于流传出来了,赶紧收藏

简爱W

再谈引入YAPI接口平台的好处

Man

DevOps YAPI API接口管理

我的缺点就是做事太认真

escray

学习 面试 面试现场

客户端存储技术进展:PersistJS的发布与MySpace选用Gears-InfoQ