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更好的解决方案。
[顺便提一下:如果你喜欢外刊IT评论,欢迎通过免费RSS订阅来跟踪本站的最新动态。这是本文的永久链接地址]
运行在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隔离开。
Firefox浏览器内置数据库
相关推荐
评论
没安装畅言模块