【レポート】
![]() |
Nicholas C. Zakas is a web software engineer who specializes in user interface design and implementation for web applications using JavaScript, Dynamic HTML, CSS, XML, and XSLT. |
Nicholas C. Zakas氏がNCZOnlineのLearning from XAuth: Cross-domain localStorageの記事で、XAuthで採用されている機能を紹介している。XAuthは複数のドメイン間でデータを共有するための機能を提供してくれる。氏はXAuthで採用された方法は複数の違うドメインの間で永続的にデータを共有するテクニックとして素晴らしい方法だとしており、簡単なサンプルコードも含めて説明している。
データを永続的に保存する方法としてはlocalStrageを使う方法がこれからのスタンダードになっていくとみられている。localStorageは便利な機能だが、シングルドメインに限定されている。違うドメインのデータを保持することはできない。違うドメインの間でデータを送受信する方法がないわけではなく、クロスドメインメッセージングの機能を使えばメッセージの送受信は可能になる。XAuthで採用されているのは、この2つの技術を組み合わせてデータを単一のlocalStrageに保存することを可能にするというもの。アイディアを簡単にまとめると次のとおり。
XAuthではhttp://xauth.org/server.htmlがa)に対応している。http://xauth.org/server.htmlのソースコードを見ると最小限のJavaScriptになっており、localStorageとJSONデータをやりとりする処理に特化していることを確認できる。このJavaScriptはローカルに動作するものだが、いわば「ブラウザ内で動作するlocalStrageサーバ」としての機能を果たすことになる。
これを利用する側のJavaScriptライブラリでは、最初の利用時にhttp://xauth.org/server.htmlにアクセスするiframeを生成する仕組みになっている。つまりこの段階でサーバにアクセスするパスを用意したということになる。以降はクロスドメインメッセージングの機能を使ってデータを送受信すればいい。このアイディアを可能にする技術を簡単にまとめると次のとおり。
すべてのブラウザがこの機能をサポートしているわけではなく、動作するブラウザは次のバージョンに限定されるという。
しかし、こうした機能を利用すると割り切ったことでコードはすっきりとまとまっていると説明がある。
| JavaScriptコードのノンブロッキングダウンロードを実現する方法 [2010/8/12] |
| src=""とhref=""で無駄リクエストが発生する問題、ブラウザ対応状況 [2010/7/15] |
| iPad向けWebアプリケーション開発テクニック [2010/4/9] |
| src=""だけでもリクエストとデータ取得が発生する [2010/3/23] |
| 「High Performance JavaScript」、3月登場 [2010/2/12] |
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
激シブ!もう一度ゴルフ Ⅱ の魅力を味わってみませんか?【大阪オートメッセ2012】 [03:06 2/11] キャリア |
|
『ヘタリア』キャラソン、新シリーズが配信決定! [03:05 2/11] キャリア |
|
全国の温泉を擬人化したドラマCD、第1弾「草津」は櫻井孝宏さん! [03:05 2/11] キャリア |
|
柿原徹也さんの2ndミニアルバム「CONTINUOUS」2月15日発売 [03:04 2/11] キャリア |
|
アニメ「Fate/Zero」陣営ごとのお守りが発売決定 [03:03 2/11] キャリア |