Ajaxで今よみがえる(^^;;-->[クロスブラウザ技術 ]DHTMLサンプル集
-- リスト --
【カテゴリー】 ActionScript ( 6 ) AIR ( 4 ) AjaSQL ( 10 ) Ajax ( 675 ) Arax ( 1 ) canvas ( 15 ) CSS ( 24 ) ( 9 ) DLNA ( 1 ) Dojo ( 25 ) DOM ( 51 ) ES4 ( 4 ) Ext JS ( 5 ) 反重力物質 ( 1 ) ffAdd-on ( 1 ) Flash ( 48 ) Flash Remoting ( 11 ) FTP ( 2 ) GAF ( 9 ) Google Maps ( 124 ) Google ガジェット ( 1 ) GPS ( 44 ) HTML ( 11 ) HTTPヘッダサンプル ( 10 ) IME ( 2 ) Internet ( 2 ) iPhone ( 49 ) IPv6 ( 1 ) 漫画 ( 4 ) Java ( 49 ) JavaScript ( 343 ) jKamo ( 8 ) jQchart ( 4 ) jQuery ( 207 ) jquery-ref ( 1 ) jsGadget ( 19 ) jslb_ ( 3 ) jslb_ajax ( 9 ) JSON ( 49 ) JSR223 ( 7 ) kjscmd ( 1 ) KNOPPIX ( 1 ) Linux ( 18 ) Mac ( 9 ) Memo ( 3 ) Microformats ( 2 ) Mini AJAX ( 2 ) MochiKit ( 2 ) mootools ( 9 ) Movable Type ( 58 ) MySQL ( 10 ) NewGameWeb ( 2 ) Nucleus ( 8 ) OpenAJAX ( 3 ) OpenDocument ( 1 ) OS ( 10 ) P2P ( 2 ) Perl ( 8 ) PHP ( 38 ) PostGIS ( 1 ) PostgreSQL ( 4 ) prototype.js ( 28 ) ROBOT ( 1 ) RSSリーダー ( 15 ) Ruby on Rails ( 7 ) SPDY ( 1 ) Spry ( 6 ) SQLite ( 17 ) SQLiteWorker ( 2 ) ssh ( 1 ) SSI ( 2 ) SVG ( 23 ) TRON ( 1 ) Ubiquity ( 7 ) Video ( 1 ) VML ( 1 ) Web Slice ( 1 ) Web Sockets ( 22 ) Webサービス ( 107 ) widget ( 6 ) Wii ( 1 ) Wiki ( 1 ) Win ( 6 ) WSH ( 1 ) X01HT ( 30 ) XML ( 32 ) XOOPS ( 1 ) XQuery ( 2 ) XUL ( 4 ) Yahoo! UI ( 74 ) 日付入力用カレンダー ( 1 ) 『Ajax実践テクニック』 ( 1 ) 『入門 Ajax』 ( 42 ) WinTips ( 2 ) こりゃすごい ( 7 ) チューニング ( 30 ) ダイナミックロード関数 ( 7 ) リファレンス ( 20 ) ライブラリ ( 210 ) レーダー雨量表示 ( 1 ) ハード ( 35 ) ペンギン ( 2 ) ブラウザ ( 108 ) ブログでBBS ( 1 ) アクセスグラフ ( 3 ) イベント ( 2 ) カレンダーによる日付入力スクリプト ( 4 ) クロスブラウザ ( 14 ) クロスブラウザ関数 ( 8 ) スポーツ ( 1 ) スマートフォン ( 8 ) セキュリティ ( 155 ) ソフトイーサ ( 1 ) マッシュアップ ( 23 ) 暗号 ( 4 ) 映画 ( 57 ) 河川の水位グラフ ( 3 ) 回線 ( 2 ) 開発ツール ( 38 ) 牛久大仏 ( 19 ) 携帯 ( 150 ) 言語 ( 19 ) 故障 ( 9 ) 高橋家の謎 ( 3 ) 広告とか ( 1 ) 洪水警報システム ( 2 ) 今日のひと言 ( 10 ) 仕様 ( 113 ) 雑談 ( 354 ) 実装 ( 2 ) 書籍 ( 20 ) 親子ウインドウ有無の確認関数 ( 3 ) 新海誠 ( 3 )
Web Sockets Domo

* サーバー側は、小松氏のこれをbloga.jp:80へ置いてあります。
* クライアント側はWS処理をjQueryプラグイン化してみました。これです。
* ちなみに、このDemoサンプルは、下記5行でローカルでも別ドメインでもどこにでも設置出来ます。
<script src="http://bloga.jp/ws/jq/js/jquery-1.3.2.min.js" type="text/javascript"></script> <script src="http://bloga.jp/ws/jq/js/jquery.ws-0.3-noenc-pre.js" type="text/javascript" charset="utf-8"></script> <script src="http://bloga.jp/ws/jq/conn/wschatdemo0.3.js" type="text/javascript"></script> <script>/*サポートしてない時のalertメッセージを抑止*/$.ws.wsSetup({nonosupportmsg:true});</script> <div id="wsdemos"></div>

【info】いつもいろいろなテストなどをページ内のあちこちでやっているので、重かったり、壊れていたりするf^^;ことも多いです。実験用ですので、カオス(混沌)をあえて意図したりもしますので、標準やValidとは無縁だったりしますが、何卒、ご了承ください ( _ _ b

【info】 最近はTwitterでぶつぶつ言ってることが多いです。
>http://twitter.com/toshirot

2008年07月27日

【iPhone】iPhone用 JavaScriptデータベースプログラミング入門 (1)

Ajax , JavaScript , SQLite , iPhone , リファレンス , 携帯 ブックマークに追加する ブックマーク-- Hatena  / Livedoor track feed


iPhone用 JavaScriptデータベースプログラミング入門

| 目次 |

iPhoneでSQLデータベースストレージを使えることがわかったので、少しテストしてみたいと思います。

自分用のテストですが、せっかくなので、後で誰かが読んでも多少は役に立つかもしれない程度に気を使いながら書いておこうと思います。

とはいえ、成り行きのメモですから、あまり期待はしないでください。


iPhone 3Gは、WebブラウザとしてSafariを使っていますが、最初のiPhone 3G(2008.7.11日本発売)に同梱されたSafariバージョンは3.1.1です。

Safariは、v3.1からHTML5で予定されているDatabasesオブジェクト(5.10 Structured client-side storage)を実装しており、iPhone 3Gでは、デフォルトで最初からこのオブジェクトをJavaScriptで操作することができます。

簡単に言うと、JavaScriptからSQLを使って、iPhoneのローカルディスクに、オフラインでも利用できる数メガのストレージ領域を持つことができるのです。

iPhoneが実装しているDBMSはSQLiteでVarsion3です。

セキュリティや容量などは後述しますが、とりあえず、使ってみることから始めたいと思います。

1.データベース作成

SQLiteは、MS Accessのように1DBに対して1ファイルという構成のデータベースです。 コマンドラインでsqlite3を使い新規データベースを作成するときは、一般には次のように「sqlite3 ファイル名」と書きます。
sqlite3 myDB0;
これで、myDB0という名前のファイルと同名のデータベースができ、sqliteのコマンドプロンプトが開きます。

これに対して、iPhoneでは、Webページ内のJavaScriptで、たとえば、次のように記述して新規データベースを作成します。
var mydb = openDatabase("myDB1");
これで、myDB1という名前のデータベースが生成されて、そのデータベースオブジェクトが返ります。

この後、データベースへの操作はこのオブジェクト(ここではmydb)に対して行います。

openDatabaseメソッドの引数は、このデータベース名の他にもありますがそれらは後述します。 なにはともあれ、本当にデータベースが生成されたのか? 確かめてみましょう。

2.データベース生成の確認

一般のsqliteでは、生成されたデータベースは、ファイルが生成されているかどうかを、たとえば、lsやWindowsならdirやエクスプローラーなどファイルディレクトリを見ることで確認することもできますが、iPhoneでは今のところローカルファイルをそのように見ることができません。

その代わり、「Top画面」-「設定」-「Safari」-「Database」でそのデータベースファイルのhostやサイズを確認できます。

myDB1という名前で、最大サイズ5.0MBのデータベースが生成されていることがわかります。

3.データベースの削除

このデータベースを、iPhoneのユーザー(つまり持ち主)が削除したい時は、 「Top画面」-「設定」-「Safari」-「Database」で右上の「編集」ボタンをタップすると赤丸が現れ、そこで「削除したいデータベース」をタップすると削除ボタンが現れますので、それをタップすると削除されます。

削除ボタンをタップするとiPhoneからそのデータベースが削除されます。


資料:
Draft HTML 5 5.10 Structured client-side storage
http://www.whatwg.org/specs/web-apps/current-work/multipage/structured.html#sql
W3C HTML 5 Editor's Draft 26 July 2008
http://www.w3.org/html/wg/html5/#structured
Safari JavaScript Database Programming Guide
http://developer.apple.com/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/
Offline Web Applications
W3C Working Group Note 30 May 2008
http://www.w3.org/TR/2008/NOTE-offline-webapps-20080530/
SQLite
http://www.sqlite.org/
SQLite > 翻訳文書 > SQLite ドキュメント
http://www.3rd-impact.net/Document/SQLite/Translation/Current/
次世代ウェブ:ブラウザーストレージのサポート
http://jp.techcrunch.com/archives/20080529the-next-gen-web-browser-storage-support/
| 目次 |





AllaboutのJavaScript記事を連載させていただいてます。最近は、jQueryを主に取り上げていますが、多少なりとも参考になれば幸いです。