HTML 5 SQL 教程 – 基础
如果你想作一些基于浏览器程序的离线应用的话,告诉你一个好消息,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) 只是个占位符,代表你对错误信息做的任何事情。
这就是它的基本知识,现在你就可以写自己的离线应用了!