分享
 
 
 

Firefox:浏览器内置数据库之路

王朝学院·作者佚名  2010-06-20
窄屏简体版  字體: |||超大  

IndexedDB是一个 正在制定中的用于浏览器中大数据量的结构化数据存贮和针对这种数据的高效能索引查询的web标准。 Mozilla已经向w3组织提交了收集到的大量的针对这个规范的重 要反馈资料。 而且我们计划在Firefox 4中实现这个规范。 我们告诉杰出的web开发者们,我们要制定一个优秀的web上的结构化数据存储API。

与此同时,有几种版本的Safari, Chrome, 和 Opera 支持一种叫做Web SQL Database的技术,这种技术是使用SQL语 句作为字符串类型的参数传入到JavaScript API里,我们认为,开发人员的美学立场是一个重要的考虑因素,因此对于客户端 的 web应用程序来说,这是一种极丑陋的解决方案。 我们把开发人员的反馈意见给了IndexedDB规范说明书的编辑, 我们还跟 微软讨论过,他们同意我们的看法,认为IndexedDB 对于web是一个不错的选择。 随着Chrome 浏览器团队即将实现这个规范, 我们有必要在这里解释一下我们的设计决策,以及为什么我们认为对于web来说,IndexedDB是一个比Web SQL Database更好的解决方案。

运行在IE 8+, Safari 4+, Chrome 4+, Opera 10.5+ 和 Firefox 2+ 上的Web应用程序已经能够利用localStorage和sessionStorage通过简单的JavaScript API存储key-value形式的数据。 这种已经被广泛实现的Web存储标准 (包括localStorage 和 sessionStorage)只是适用于小数据量的数据,而对于大数据量的结 构化数据的存储就力不从心了。 虽然很多服务器端的数据库都使用SQL来编程操作结 构化数据、有针对性的查询数据,但在客户端,在JavaScript API里使用SQL,存在着很大的争议。

SQL? 什么SQL?

很多的web开发人员都非常熟悉SQL, 因 为他们既跟客户端的代码打交道(例如JavaScript,,CSS以及标记语言),同时也跟服务器端代码大交道(例如PHP和数据库操作)。 然而,尽管受人喜欢的SQL广泛使用,我们却没有一个统一的SQL规范来定义这种技术。 特别的,SQLite虽然支持大部分的SQL-92标 准,但也有不少明显的缺失,而WebDatabase API就是以它为基础的。 SQLite它自己并不是一种规范 — 它是一种开发完成的技术! 而最好的用来说明SQLite支持哪些SQL子集的定义文档就是这个SQLite使用手册。 为了能使Web SQL Database向真正正确的方向发展,我们必须首先为web应用程序定义一个有意义的SQL子集。 当JavaScript本身已经有了很多的优秀解决方案的同时,我们为什么要定义出另外一种语言呢?

SQLite的长处和短处

我们认为SQLite是一种非常有用的技术,它已经成为Firefox有效的扩展组件和受信任的软件。 可我们不认为它是一个合适的对外公开用来生成web内容的API的基础程序, 完全不适合,因为我们没有一个可信任的、广泛接受的标准来正确的规范SQL子集。 除此之外,我们不希望以后会由于SQLite的变动而影响到整个web, 也不认为把各大浏览器(以及web标准)都约束到SQLite上是一种明智的做法。 IndexedDB不存在这些问题;甚至我们可以把对IndexedDB底层的实现基于SQLite之上, 我们通过发布一些不依赖于SQLite语法语义的API将开发人员和SQLite隔离开。

美学和Web开发者

去年,我们在Mozilla校园里举办了一次峰会,主要讨论web上的存储。 我们邀请web开发人员告诉我们他们的理想的web上的结构化数据存储API的样子。 很多人表示有保留的接受以SQLite为基础的API,因为他们在一些浏览器里都使用过Web SQL Database,他们认为有些东西“有”总比“没有”强、比还只是一些概念的东西强。 当然,所有的声音都热情的希望一种更好的设计方案,期望一种更易处理的更简单的模式。 我们看着程序员们在白板上绘制一个简单的BTree API,将他们遇到的应用程序上对数据存储的要求添加到上面,这激励着我们去重视他们的意见。 我们达成一致,认为使用字符串表示SQL语句缺乏作为“web原生”的JavaScript API的优雅,应该寻找一种替换设计。我们和微软一起征求关于IndexedDB议案的回馈,有幸成为为这个标准努力的活跃分子。

在另外一篇文章里,我们将 IndexedDB和Web SQL Database进行了对比,注意到前者提供了一种比后者跟简单的语法。 IndexedDB给第三方开发者开发JavaScript代码库提供了完全的空间,让他们可以通过BTree API完全驾驭下层基础, 我们非常期待像BrowserCouch这 样的构建于IndexedDB之上的具有首创精神的成果出现。 坚定无畏的开发人员们实际上可以在IndexedDB上开发出一个SQL API。 我们特别的期望看到一种基于IndexedDB的Web SQL Database API实现, 我们认为这在技术上是能做到的。在浏览器里使用SQL-based API基本上不是一种合适的入手途径,但在IndexedDB上的SQL-based APIs还是有它的空间的。

我们希望继续和web开发人员们探讨web上的数据存储,这能帮助我们整理关于产品功能和未来web标准的思路。 我们期待着下一代的web应用程序能够在索引过的数据上执行高性能的查询操作,期望web应用能在“airplane模式”下更健壮的运行。

文/外刊IT评论

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有