BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

LocalForage:引领离线时代

| 作者 João Paulo Marques 关注 0 他的粉丝 ,译者 刘君 关注 0 他的粉丝 发布于 2014年3月6日. 估计阅读时间: 4 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

Mozilla基金会发布了localForage,一个致力于简化web应用中离线数据存储过程的新型JavaScript库。

因为可选项很多,离线支持虽说不是新兴浏览器技术,也常常过于碎片化。LocalForage的独到之处在于尝试融合两方优势:用简单API实现某些新兴技术特性(异步和blob支持)。这能为web应用提供强大的离线能力,使其更接近本地移动版本,这样,开发者工作起来也会更自然。

LocalStorage是最早出现的一种可选技术,这一技术为离线存储提供了简单的数据访问功能。然而,基准测试证实其速度较慢,而且只能同步使用,且无法处理二进制blob (例如,无法处理mp3文件缓存)。此后相继出现了其他两种很受欢迎的技术——IndexedDBWeb SQL——异步,高效并支持大数据集。这两项技术的缺陷在于其API并不易于使用,而且都不为所有主流浏览器支持

最近发布的localForage尝试通过技术融合来克服这些困难——既有来自IndexedDB和Web SQL的异步性和blob支持,也支持极简的localStorage语法:

var settings = {color: 'black', font: 'Helvetica'};   
localForage.setItem('settings', settings, function(result) {   
  console.log(result);   
});

相比单独使用localStorage,内置的IndexedDB和Web SQL支持能让web应用存储更多数据。其API的非阻塞特性使得web应用不必因get/set调用挂起主线程,从而提高了执行效率。此外,localForage支持回调,而ES6 Promises 为开发者预留了最佳实现的选择权。

无需手动管理(最好的驱动应独立于应用运行所依赖的浏览器进行选择),程序库就会自动装载并管理IndexedDB、Web SQL及localStorage驱动。 如果IndexedDB和Web SQL同时不可用,localForage将回退到localStorage,这样处理保证了至少基本数据都能离线存储了(尽管没有blob支持,而且速度会慢上许多)。

LocalForage支持所有当代浏览器。而所有浏览器都支持异步存储,括号中标注了支持localStorage的浏览器版本:

  • Android Browser 2.1
  • BlackBerry 7
  • Chrome 23 (Chrome 4.0 with localStorage)
  • Chrome for Android 32
  • Firefox 10 (Firefox 3.5 with localStorage)
  • Firefox for Android 25
  • IE 10 (IE 8 with localStorage)
  • IE Mobile 10
  • Opera 15 (Opera 10.5 with localStorage)
  • Opera Mobile 11
  • PhoneGap/Apache Cordova 1.2.0
  • Safari 3.1

查看原文接: Going Offline with LocalForage


感谢邵思华对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

支持基于HTML5的高效离线存储 by Yang Allen

支持基于HTML5的高效离线存储

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT