2008年9月13日土曜日

iPhoneのSafariでクライアントのデータをどこにしまうのか?

iPhone用のWebサイトってどうやってつくるんだろう?ということでDashcodeを起動してみた.
サンプルで'ユーティリティ'を選択してみてとりあえず配置してみた.


で動作画面.


これでいろいろ値を設定して閉じる.また開く.と,値が保存されている.さてこれはどこに保存されているのか?
1.CGIでサーバ…dotMacでそれはない.
2.クッキー…保存量に問題がないかな…調べてもない(MacのSafariで調べた).

どこ?ということで探してみた(MacのSafariで調べた).
見つかったのはSafariのデータベース.場所は以下
/Users/[username]/Library/Safari/Databases/http_web.me.com_0/
ファイル名は*.db

でなんとなくダブルクリックしてみたら'SQLite Database Browser'が起動した.その存在を忘れてた.しかもちゃんと開いた.ということはSQLiteか.


これってなんだろうとおもってコードをみてみたらmain.jsにこんなコードがあった.
function initDB()
{
try {
if (window.openDatabase) {
database = openDatabase("Message", "1.0", "Message Database", 1000);
if (database) {
database.transaction(function(tx) {
tx.executeSql("SELECT COUNT(*) FROM " + DB_tableName, [],
function(tx, result) {
loadMessage();
},
function(tx, error) {
// Database doesn't exist. Let's create one.
tx.executeSql("CREATE TABLE " + DB_tableName +
" (id INTEGER PRIMARY KEY," +
" key TEXT," +
" value TEXT)", [], function(tx, result) {
initMessage();
loadMessage();
});
});
});
}
}
} catch(e) {
database = null;
}
}


?'window.openDatabase'って?と思い漠然と検索.
でヒットしたのがこちらのサイト.
Safari3.1に搭載されたClient-side Database storageを試してみた


あーこれがHTML5に入るクライアントの保存機能ってやつか.

0 件のコメント: