Web SQL Databaseという、DBがアクセスできる。
(最初はSqliteを想定されていたらしい)
http://www.publickey1.jp/blog/09/websql.html
・データベースのオープン
Database openDatabase(dbname, version, displayName, estimatedSize)
(dbnameは空OK。
versionはデータベーススキーマのバージョン。空文字を使用すると、バージョンに関係なくデータベースをオープン。
displayNameは、データベースをユーザに表示する際に使用される名称
estimatedSizeは、データベースの見積りサイズをbyte単位で指定)
・SQLの実行
db.transaction(callback, onError, onSuccess)
(dbはDatabaseオブジェクト
callback:トランザクション内で行う処理
onError:トランザクションがエラー終了した際の処理
onSuccess:トランザクションが正常終了した際の処理
callback以外は省略可能)
tx.executeSql(sql, args, onSuccess, onError)
(txはSQLTransactionオブジェクト
sql:そのままSQL
args:sqlで?を含めることができ、置換したもの?
あとは同様)
サンプル
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
// データベースのオープン
var db = openDatabase("mycom_sample", "", "Sample for mycom", 1024*1024);
// テーブルの作成
db.transaction(function(tx) {
tx.executeSql("create table if not exists storage (name, val)");
});
function load() {
db.transaction(function(tx) {
tx.executeSql("select * from storage", [], function(tx, rs) {
var list = document.getElementById("list");
list.innerHTML = "";
var rows = rs.rows;
// storageテーブルに格納されている全ての値を列挙
for (var i = 0, n = rows.length; i < n; i++) {
var row = rows.item(i);
list.options[list.options.length] = new Option(row.val, row.name);
}
});
});
}
function remove() {
var list = document.getElementById("list");
if (list.selectedIndex < 0) {
return;
}
var selected = list.options[list.selectedIndex].value;
// 選択された項目を削除
db.transaction(function(tx) {
tx.executeSql("delete from storage where name = ?", [selected], function() {
load();
});
});
}
function add() {
var name = document.getElementById("name").value;
var value = document.getElementById("value").value;
// storageテーブルに値を格納
db.transaction(function(tx) {
tx.executeSql("insert into storage (name, val) values (?, ?)", [name, value], function() {
load();
});
});
}
</script>
</head>
<body onload="load()">
<h1>Databaseのサンプル</h1>
<select id="list" size="5" style="width: 100px"></select>
<button onclick="remove()">削除</button><br>
キー:<input type="text" id="name"><br>
値:<input type="text" id="value">
<button onclick="add()">追加</button><br>
</body>
</html>
2009年時では、Safari 4のみが対応?
http://journal.mycom.co.jp/special/2009/html5-2/008.html
サンプル
http://d.hatena.ne.jp/emergent/20100301/1267450386
Google Chromeでも動くらしい
HTML5のWeb SQL DatabaseをGoogle Chromeで試す
http://d.hatena.ne.jp/emergent/20100301/1267450386
Chrome 4がHTML 5 Web SQL Database APIをサポート
http://www.infoq.com/jp/news/2010/02/Web-SQL-Database
— posted by midilin @ 09:28AM
最近のコメント