Archive

Posts Tagged ‘offline’

HTML 5 SQL 教程 – 基础

June 25th, 2010 yakjuly No comments

如果你想作一些基于浏览器程序的离线应用的话,告诉你一个好消息,HTML5越来越近了。在HTML5之前,你只有两个选择:

1.要求你的用户安装 Google Gears

2.作一个本地服务器栈

现在有了HTML5,除了cookies,有三种产生离线应用的方法:

1.应用程序缓存原理(声明manifest属性)

2.本地对象存储(local object storage)

3.本地SQL数据库(local SQL databases)

目前SQL只能在Safari,Google Chrome,IPhone和Palm的WebOS(包括应用程序与浏览器)运行。FireFox 3.51说是已经开始支持SQL,但是现在仍然不能用有bug。

现在没有一个十分清晰的的 HTML5中使用的SQL语法,SQLite的语法是目前的替代方案。那意味着如果你有SQL代码方面的问题,可以直接代SQLite的网站找解决方法。

访问本地数据库

一个简单测试你的环境是否支持HTML5的数据库的方法:

if (window.openDatabase)

db = window.openDatabase("app", "", "my app db name", 1024*1024);

现在,可以简单测试下db在这个操作之后是不是一个对象.如果你得到了一个数据库对象,说明你的浏览器支持创建与访问你的程序的数据库。让我们来看看他是如何工作的:

window.openDatabase( DatabaseName, DatabaseVersion, DisplayName, EstimatedSize )

这里要小心填写数据库的版本参数,如果你设置的和本地的版本不符合,操作将会失败。这个参数的原理是 有机会扩展和升级数据库,但也可能带来一大堆其他的麻烦。

执行查询

通过数据库事务(transaction)进行异步访问(asynchronous access)的接口:

transaction.executeSQL( SQLStatement, SQLParameters, ResultsetCallback, ErrorCallback )

以及我们如何使用:

db.transaction(function(tx)

{

tx.executeSql('SELECT * FROM MyTable WHERE CategoryField = ?',

[ selectedCategory ],

function (tx, rs) { displayMyResult(rs); },

function (tx, err) { displayMyError(err); } );

});

这个迷人的例子展示了如何从DB中取得数据,或者说是如何执行SQL语句,再这个例子中 displayMyResult(rs) displayMyError(err) 只是个占位符,代表你对错误信息做的任何事情。

这就是它的基本知识,现在你就可以写自己的离线应用了!

点这里查看原文

Categories: html5 Tags: ,