广州web培训
达内广州五羊中心

18589266248

热门课程

达内广州web培训详解缓存Websql

  • 时间:2016-11-08 14:29
  • 发布:广州web培训
  • 来源:techug

websql这种方式只有较新的chrome浏览器支持,并以一个独立规范形式出现,主要有以下特点:

Web Sql数据库API实际上不是HTML5规范的组成部分;

在HTML5之前就已经存在了,是单独的规范;

它是将数据以数据库的形式存储在客户端,根据需求去读取;

跟Storage的区别是:Storage和Cookie都是以键值对的形式存在的;

Web Sql更方便于检索,允许sql语句查询;

让浏览器实现小型数据库存储功能;

这个数据库是集成在浏览器里面的,目前主流浏览器基本都已支持;

websql API主要包含三个核心方法:

openDatabase :这个方法使用现有数据库或创建新数据库创建数据库对象。

transaction :这个方法允许我们根据情况控制事务提交或回滚。

executeSql :这个方法用于执行真实的SQL查询。

openDatabase方法可以打开已经存在的数据库,不存在则创建

var db = openDatabase('mydatabase', '2.0', my db', 2 * 1024);

openDatabasek中五个参数分别为:数据库名、版本号、描述、数据库大小、创建回调。创建回调没有也可以创建数据库。

database.transaction()函数用来查询,executeSql()用于执行sql语句

达内广州web培训接下来举例说明,例如在mydatabase数据库中创建表t1:

var db = openDatabase(' mydatabase ', '1.0', 'Test DB', 2 * 1024 * 1024);  

db.transaction(function (tx) {    

tx.executeSql('CREATE TABLE IF NOT EXISTS t1 (id unique, log)');  

});

插入操作

var db = openDatabase('mydatabase', '2.0', my db', 2 * 1024);

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS t1 (id unique, log)');  

tx.executeSql('INSERT INTO t1 (id, log) VALUES (1, "foobar")');  

tx.executeSql('INSERT INTO t1 (id, log) VALUES (2, "logmsg")');  

});

在插入新记录时,我们还可以传递动态值,如:

var db = openDatabase(' mydatabase ', '2.0', 'my db', 2 * 1024);  

db.transaction(function (tx) {    

tx.executeSql('CREATE TABLE IF NOT EXISTS t1 (id unique, log)');  

tx.executeSql('INSERT INTO t1 (id,log) VALUES (?, ?'), [e_id, e_log];  //e_id和e_log是外部变量

});

读操作,如果要读取已经存在的记录,我们使用一个回调捕获结果:

var db = openDatabase(mydatabase, '2.0', 'my db', 2*1024);     

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS t1 (id unique, log)');  

tx.executeSql('INSERT INTO t1 (id, log) VALUES (1, "foobar")');  

tx.executeSql('INSERT INTO t1 (id, log) VALUES (2, "logmsg")');  

});  

db.transaction(function (tx) {

tx.executeSql('SELECT * FROM t1, [], function (tx, results) {

var len = results.rows.length, i;  

msg = "<p>Found rows: " + len + "</p>";  

document.querySelector('#status').innerHTML +=  msg;  

for (i = 0; i < len; i++){

alert(results.rows.item(i).log );  

}

}, null);  

});

上一篇:达内广州web培训详解缓存indexDB
下一篇:达内广州web培训详解http缓存和cookie

马上预约三天免费体验课

姓名:

电话:

你需要了解的搜索功能

达内广州web培训详解http缓存和cookie

达内广州web培训详解缓存Websql

达内广州web培训详解缓存indexDB

选择城市和中心
贵州省

广西省

海南省