html5 database storage,HTML5 database storage (SQL lite) - few questions

问题

Hy there,

I can\'t find enough beginner resources on the web about HTML5 database storage usage examples (CRUD)

I\'m opening(creating) my DB like this:

var db;

$(document).ready(function()

{

try

{

if (!window.openDatabase) {

alert(\'Not Supported -> Please try with a WebKit Browser\');

} else {

var shortName = \'mydatab\';

var version = \'1.0\';

var displayName = \'User Settings Database\';

var maxSize = 3072*1024; // = 3MB in bytes 65536

db = openDatabase(shortName, version, displayName, maxSize);

}

}

catch(e)

{

if (e == 2) {

alert(\"Invalid database version.\");

} else {

alert(\"Unknown error \"+e+\".\");

}return;

}

});

QUESTION 1: How many databases can i create and use on one domain?

QUESTION 2. How to delete (drop) a database. -> i have not figured this out yet.

To create sql queries you use transaction:

function nullDataHandler(transaction, results) { }

function createTables(db)

{

db.transaction(function (transaction)

{

//first query causes the transaction to (intentionally) fail if the table exists.

transaction.executeSql(\'CREATE TABLE people(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL DEFAULT \"John Doe\", shirt TEXT NOT NULL DEFAULT \"Purple\");\', [], nullDataHandler, errorHandler);

});

}

QUESTION 3: How so is the above transaciton failed if a table exists? Is the nullDataHandler involved to do this? Where on the web is there documentation explaining the executeSql API? Arguments?

thx

回答1:

The spec you're looking for is Web SQL Database. A quick reading suggests:

There is no limit, although once your databases increase beyond a certain size (5MB seems to be the default), the browser will prompt the user to allow for more space.

There is no way, in the current spec, to delete databases.

The executeSql() function takes an optional error callback argument.

HTML5 Doctor also has a good introduction.

Going forward, though, I'd recommend looking at Indexed DB. Web SQL has essentially been abandoned since there is no standard for SQL / SQLite. Even Microsoft has endorsed Indexed DB. See Consensus emerges for key Web app standard.

回答2:

CREATE TABLE IF NOT EXISTS table_name

will create a table table_name only if if does not exist.

回答3:

I found the following WebSQL tutorials helpful for basic CRUD operations, as they contained examples, and explained what the code was doing:

A Simple TODO list using HTML5 WebDatabases

HTML5 Web SQL Database

And the following links for SequelSphere (an HTML5 JavaScript SQL Relational Database Alternative to WebSQL that works in all browsers, storing data in LocalStorage and IndexedDB):

SequelSphere basic Usage instructions

API Documentation

Full Index of Guides and Helper Documentation

回答4:

Using PersistenceJS there is a persistence.reset API which will wipe the database clean.

PersistenceJS Site

For developing / testing purposes, you can view content and delete webSQL, IndexedDB, cookies, etc by searching for your domain name at this URL in Chrome:

chrome://settings/cookies

There, you can delete all the storage for a domain or just certain local storage entities. Yes, the URL implies just 'cookies', but the interface at this URL includes all types of offline storage.

It would be great I think if the Chrome developer tools interface had the ability to right-click and delete a data storage entity in the Resources tab along with inspecting the content. But for now, all I know of is the settings/cookies URL.

回答5:

It is supported on iOS safari,chrome and some latest version of opera....it's not yet adopted by IE and Firefox that's it......what more one can ask than local db on browser which has relational db system...so u can query it easily and handle complex data....which is very tougher in key vale based systems..

I remember reading it even supports upto one gb.i am not sure....

Note:

1)I'd like to mention one point there is a IDE called Dashcode which let's u build web apps that looks like iOS native.even there also web SQL is used.

2)actually web SQL is a implementation of SQLite on browsers.

3)SQLite is most prefered in both iOS and android as db for native code..

The drawbacks of SQLite:

The Lack of concurrency support but which is not a problem in browser as it's gonna be used by single user at a time..this is a case also in mobile.

Conclusions:

Web Sql is abandoned by w3 that's a sad thing so we've to explore other options.

来源:https://stackoverflow.com/questions/2689939/html5-database-storage-sql-lite-few-questions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值