HTML5でローカルストレージ

ドメインとヒモ付けしてDBを共有してる、らしい。
モダンなブラウザなら大体動く ※


なんとなくprototype.js前提だけど、適当に読み替えてください。

localStorage

localStorageに直接書いてもいいけど、どうせなので JSONシリアライズして保存する。

Data  = Class.create({
        //JSONで保存する
        initialize:function(name){
                this.name = name;
                if(localStorage[name])
                        this.data = this.load(name)
                else 
                        this.data = {};
        }, 
        save:function(){
                //保存
                var d = JSON.stringify( this.data );
                localStorage.setItem(this.name,  d );
        }, 
        load: function(key){
                //復元
                var tmp = localStorage.getItem(key);
                return  JSON.parse(tmp);
        }
});
db = new Data("hoge");
db.data["greeding"] = "hello world!";
db.save();

WebSQL

とりあえず動かした程度。

DataSQL= Class.create({
        //JSON 
        initialize:function(){
                var buff = 1048576;
                this.db = window.openDatabese("mydb","","expression", buff);
        }, 
        execute:function(sql){
                this.db.transaction( function(tx){ tx.executeSql( sql ) } )
        }
});


data = new DataSQL();
data.db.execute( "create table mydb(val1 int)" );

自分SQLあんまり得意ではないのだけど、中身はsqlite3らしいので、理解がある人ならsqlをポンポン発行できるだろう。


とりあえず書いてみたけど、Chromiumでしか動作確認してない。