`
wjlgryx
  • 浏览: 306830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Webkit做到了HTML5方式的客户端数据库存储

阅读更多

目前正在规划的HTML5标准中有很多令人兴奋的特性,我们非常愿意将这些特性在Webkit里加以实现。其中有一个特性,我们觉得目前可以带给浏览器足够的惊喜——这甚至还并不是规范,那就是客户端数据库存储。因此最近几周我和andersca还有xenon已经将其实现!

客户端数据库存储接口允许网页应用通过SQL——这个很多Web开发者已经熟悉的媒介,存储结构化的本地数据。

这些接口是异步的并且使用回调函数来处理数据库查询的结果。
定义一个简单用途的回调函数大概是如下的样子:

var database = openDatabase("Database Name", "Database Version");

database.executeSql("SELECT * FROM test", function(result1) {
   // do something with the results
   database.executeSql("DROP TABLE test", function(result2) {
     // do some more stuff
     alert("My second database query finished executing!");
   });
});

这里还有如何在一个真实的情境中使用这些接口的例子 ,我们将尝试不断记录事情的发展。

这个初步的功能实现有一些已知的和规范不符的缺陷。不过这个是基础,同时也是为了人们真正把这个特性用起来而探索接下来工作需求的最好方式!



原文:
WebKit Does HTML5 Client-side Database Storage
Posted by Brady Eidson on Friday, October 19th, 2007 at 4:04 pm
The current working spec for the HTML5 standard has a lot of exciting features we would eventually like to implement in WebKit. One feature we felt was exciting enough to tackle now even though the spec is still in flux is client-side database storage. So for the last few weeks andersca, xenon, and I have been cooking up an implementation!

The client-side database storage API allows web applications to store structured data locally using a medium many web developers are already familiar with – SQL.

The API is asynchronous and uses callback functions to track the results of a database query.
Compact usage defining a callback function on the fly might look something like this:

var database = openDatabase("Database Name", "Database Version");

database.executeSql("SELECT * FROM test", function(result1) {
   // do something with the results
   database.executeSql("DROP TABLE test", function(result2) {
     // do some more stuff
     alert("My second database query finished executing!");
   });
});

There will also be a small example of how to use the API in a real site that we’ll try to keep up to date as things evolve.

This initial implementation has some things missing from the spec as well as a few known bugs. But it does the basics and the best way to discover what needs work is to get it out there for people to start using it!

If you find any bugs, would like to suggest features, or have gripes about the spec itself, please drop by #webkit or drop us a line on the WebKit email lists.

Oh, and one more thing…

We’re landing this initial implementation with pretty cool Web Inspector support!
So far you can view the full contents of any table and run arbitrary queries on each database a page is using. We have a lot of ideas for improvements but would also love to hear yours.

 

  • 大小: 60 KB
分享到:
评论

相关推荐

    node-webkit sqlite nw0.12.0,0.12.2,0.12.3

    SQLite则是一个轻量级的嵌入式数据库系统,广泛应用于各种软件项目中,因为它无需独立服务器进程,可以直接在客户端进行数据存储。 描述提到“编译了64位和32位node-webkit的sqlite3”,这意味着这个压缩包包含了...

    电大数据库运维作业一 数据库运维.pdf

    数据独立性分为逻辑独立性和物理独立性,分别意味着应用程序与数据的逻辑结构和物理存储方式之间的独立。 3. **MySQL命令与参数**:在MySQL中,删除数据库的命令是`DROP DATABASE [DB_NAME]`;mysqladmin命令行工具...

    Webkit内核源代码分析

    Webkit提供了多种客户端存储机制,如`WebDatabase`(SQLite数据库)、`WebStorage`(localStorage)和`WebIDB`(IndexedDB)。这些接口允许JavaScript代码在用户设备上持久化存储数据。 6. **接口与API**: - `...

    《Oracle数据库系统管理与运维》课程教学大纲 数据库运维.docx

    - **客户端配置**:客户端访问数据库的方法和配置。 ##### 8. 监控管理 - **自动诊断知识库**:理解ADDM的工作原理及其在问题诊断中的作用。 - **告警与跟踪**:如何设置告警规则,以及如何通过跟踪文件定位问题。 ...

    数据库运维说明书 (3) 数据库运维.docx

    根据提供的文档内容,我们可以归纳出以下关键知识点,主要聚焦于数据库运维的重要方面: ### 一、数据库基本信息 #### 1. 数据库名称 - **定义**:标识数据库的唯一名称。 - **作用**:便于管理和识别不同的数据库...

    浏览器内核&HTML5.pptx

    - **IndexedDB**是一种客户端数据库API,用于存储大量数据。 - **WebGL**使得在网页上进行3D图形渲染成为可能。 - **Node.js**是一个基于Chrome V8引擎的JavaScript运行环境,用于服务端开发。 - **jQuery/React...

    12306订票客户端,QT版,代码跨平台

    综上所述,这个12306订票客户端利用QT框架实现了跨平台的功能,通过网络库与12306服务器通信,使用SQLite数据库存储用户数据,并采用JSON格式交换信息,同时保证了通信的安全性。用户界面可能部分依赖于Webkit技术,...

    TagsAudio-client:用于 TagsAudio 服务的 Node-webkit 客户端

    "TagsAudio-client"是一个专为"TagsAudio"服务设计的Node-webkit客户端应用。Node-webkit是一种允许开发者使用Web技术(HTML、CSS和JavaScript)构建桌面应用的框架。这个客户端可能提供了与音乐、音频处理或分类...

    数据库运维说明书 数据库运维.docx

    - **检查监听状态**:通过命令`lsnrctl status`检查监听器的状态,确保监听器正常运行以便客户端能够连接到数据库。 ### 二、表空间管理 - **检查表空间的使用情况**:通过查询`dba_free_space`和`dba_data_files`...

    数据库运维说明书审批稿 数据库运维.docx

    4. **服务名称**:客户端连接到数据库时使用的名称。 5. **数据库软件版本**:正在运行的 Oracle 数据库版本。 6. **实例启动时间**:数据库实例的启动时间。 7. **当前会话列表**:显示当前活动的用户会话。 8. **...

    Android平台的即时通信系统客户端设计方案.doc

    客户端采用SQLite数据库存储用户信息和聊天记录,文件系统如SD卡用于存储图片和音乐。Content Provider封装SQLite数据库,提供统一的接口,隐藏底层数据操作的复杂性。 6. **主要功能实现** - **注册**:用户填写...

    网络管理与维护项目三-任务3-3-IT运维系统-整合监测-应用-IBMdb2数据库 数据库运维.docx

    通常情况下,安装完IT运维系统后,DB2客户端的安装程序会自动存储在指定路径下(例如C:\Smartview\Smartview目录),只需执行`DB2_Client_9.5_x86.exe`即可完成安装过程。 #### 三、DB2客户端配置步骤详解 在安装...

    数据库运维说明书 (1) 数据库运维.docx

    - **服务器参数文件**:用于存储数据库配置参数的文件,通常称为SPFILE。 - **控制文件列表**:列出所有控制文件的位置和名称,控制文件对于数据库的启动至关重要。 - **检查监听状态**:通过命令`lsnrctl status`...

    基于Android平台SQLite数据库技术在图书馆中的应用.docx

    5. 兼容性强:支持SQL标准,兼容多种数据库操作。 在图书馆应用中,SQLite数据库可以用来存储图书信息、借阅记录等数据,便于用户查询、借阅和归还操作。例如,可以创建书籍表、借阅者表,通过SQL查询实现书籍检索...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...

    3.0.0 升级日志1

    IndexedDB 2.0 是一个客户端存储技术,它允许开发者在客户端存储大量数据。 IndexedDB 2.0 是继 IndexedDB 1.0 之后的一个 major 版本,相比于 1.0 版本,2.0 版本具有更高的性能和更好的兼容性。 在小书匠中,...

    LokiJS:javascript可嵌入的内存数据库

    客户端内存数据库是理想的(例如,会话存储) 性能关键型应用cordova / phonegap移动应用程序,您可以在其中利用javascript的功能并避免与本机数据库进行交互数据集加载到浏览器页面中并在工作会话结束时进行同步...

    优秀的开源Web开发资源

    SQLite是一个轻量级的嵌入式数据库,其设计简单,将整个数据库存储在单一文件中,适用于客户端/服务器模型。SQLite不支持独立的数据库服务器进程,而是在宿主应用程序内直接操作,这减少了系统开销,并简化了数据库...

Global site tag (gtag.js) - Google Analytics