第1回 Webアプリのユーザビリティを改善しまくるAjax
株式会社ピーデー川俣 晶
2005/11/2
| Ajax うきうき Watchでは、Ajaxを使ったWebアプリケーションやサービス提供者、ベンダの動向から「うきうきするような」面白いもの、確実に押さえておきたいものを厳選してお届けしていきます。 |
| 本記事は2005年に執筆されたものです。Ajax全般の最新情報は「リッチクライアント & 帳票フォーラム」総合目次のカテゴリ「実践Ajax」や「Ajax技術解説」をご参照ください。 |
- - PR -
前口上 |
Ajax、それはWebアプリケーションのユーザビリティを改善する切り札である。古い技術を組み合わせ、魔術のごとく生まれ変わった新しいファッションである。
今回より、なるべく密に、Ajaxの動向をウォッチングしていきたいと思う。
基本的には、新しい話題を中心に、厳選した面白い話題を提供していきたいと思うが、今回だけは初回でもあり、これまでのAjaxに関する話題から面白いもの、確実に押さえておきたいものをピックアップしてみたい。
なお、ここでは主に日本語で読める情報について取り上げていく。ただし、特に重要なものについては、英語の情報を扱う場合がある。
| Ajaxとは何かは「古くて新しいAjaxの真実を見極める」をご参照ください。 |
ハイライト1・必読の原典 |
- Ajax: Web アプリケーション開発の新しいアプローチ(kentaro / けんたろ氏による日本語訳)
- Ajax: A New Approach to Web Applications (英語原文)
流行技術に典型的に見られるのは、それが何であるかを定義する明確な規定がない、あるいは規定があっても見過ごされている状況である。その結果、その名前を言ってみると、何となくムードでそれが通じるという状況が発生する。
しかし、ムードだけでは済まされない状況も世の中にはある。技術者があいまいな言葉を使ってコミュニケーションしていては、システムが動作しない可能性があり得る。また、業者と顧客も、提供できるものが何か、欲しいものが何であるかを明確な言葉で語ることができねばトラブルのもとである。そのようなトラブルを回避するには、そもそもその技術を規定する文書をきちんと読んでおくのが大切といえる。筆者がかかわったXMLの世界では、特にこのような問題によって無用のトラブルが頻発していたので、Ajaxが同じ問題を抱え込まないためにも、特に強調して筆頭に書き記しておきたい。Ajaxではこの文書こそがそのために読むべき文書に当たる。“Ajax”(エイジャックスと読む)という言葉を誰かに向かって語ってみたい人は、目を通しておくとよいだろう。
規定する文書、などというと難しそうに感じられるかもしれないが、そうではない。誰もAjaxを知らない状況でAjaxを説明するために書かれた文書なので、当然のことではあるが、読むためにAjaxの専門的な予備知識は要求されない。長さもさほどではないので、ぜひ目を通してみよう。
とはいえ、現状ではこの定義に当てはまらないAjaxの使い方もあるので、書かれた言葉を絶対視しないよう、注意する必要がある。
ハイライト2・Ajaxでどこまでできるの? 本格アプリケーションZimbra |
Ajaxでどこまでできるの? という懐疑論者にはこれがお勧め。
Ajaxによるいま話題の本格アプリケーションソフトである。次世代のエンタープライズメッセージングとコラボレーションのツールである。つまり、電子メールの読み書き、スケジュールやアドレス帳の管理や検索などを行うことができる。英語での提供となるが、上記の2種類のデモを見ると、思わずWebブラウザ上で動作していることを忘れそうになるような高度なアプリケーションソフトが実現されていることが分かるだろう。
2つのデモのうち、特に自分で操作できるデモに注目しよう。Ajaxは何の変哲もないWebブラウザをプラットフォームとして実行するので、単にリンクをクリックして進むだけで、応用ソフトを使い始めることができるのである。
しかし、Webブラウザだけで機能が完結していないことも確認しておこう。データを蓄積し、検索などの機能を実行しているのはサーバ側である。多くの場合、Ajaxアプリケーションはサーバとクライアントの双方をフル活用して動作する。その点で、サーバだけ、クライアントだけで構成される従来のWebアプリケーションとは一線を画している。
ハイライト3・Google |
- Googleサジェスト
- Googleローカル
- Gmail
- ……etc
Ajaxというブームの出所をたどると、Googleにたどり着く。GoogleはAjaxという名前の提唱者ではないが、現在Ajaxと呼ばれるスタイルを本格的に使い始めたのは、おそらくGoogleだろう。特に、Googleサジェストや、Googleマップ(現在はGoogleローカル)がもたらしたインパクトは大きい。かくいう筆者も、Googleマップでサテライト画像を見るのが大好きで、東京中のあちこちをいく度も見て回った。例えば、通勤通学の車窓から何回となく見た東京都水道局和田堀給水所が、空から見るとこのような幾何学模様に見えるというのは、用もないのにふらふらとこのサービスを見ていて発見したものである。
しかし、ここでは特にGoogleサジェストをAjaxを語るうえで重要なサービスだと主張してみよう。Gmailのようにアカウントを取得せずとも使え、同時に非同期通信を手軽に実感できるためだ。このサービスは、検索キーワードを入力中に、その先を推測して候補を表示するものである。しかし、候補が出るまで待つ必要はなく、勝手に利用者のペースで文字を打ち込んでも良い。タイピングと候補の表示のタイミングを合わせる必要がないというのは、Ajaxの重要な特徴の1つである非同期通信を体感するための好例といえる。
その他のみどころ |
今回は初回ということで、新旧にかかわらずAjaxを実感するのに役立ついくつかのページを紹介します。
みんながあっという手書き文字認識
筆者が作成したAjax関連リンク集の中で、特に高人気なのがこれ。Ajaxでここまでできるとは! という驚きの声がしばしば聞こえてくる。ここで公開されているのは、純粋に手書き文字を認識するだけのシステムである。マウスで文字を描くと、その文字を認識する。誤認識した場合に学習させる機能も持っている。
保存という概念がないメモツール
基本的には文字を入力するメモツールだが、保存というメニューが存在しない。入力すると自動的にサーバに保存される。せっかく書いた文章が、誤ってWebブラウザを閉じてしまったために永遠に失われてしまった。……というような悲劇を防ぐことができる。入力されたURLをダブルクリックするとそれが開く機能も持つが、短いコードでこれだけの機能を実現しているのは興味深いところではないだろうか?
XMLとは異なる別解
Ajaxでは、非同期にデータの転送を行う。そこで使われるのは、一般のテキストファイルと、XML文書だと原典に書かれているが、現在は別のものも多数使われている。これがJSON(JavaScript Object Notation)である。JSONを一言で要約すれば、JavaScriptの文法で書かれたオブジェクトのソースコードを交換形式にしてしまえ、ということである。JSONで書かれたデータは、JavaScriptのeval関数でコンパイルしてプログラム中から参照できる。XMLを使うよりも、より手軽なのが特徴である。
JSONを扱うためのライブラリはさまざまなプログラム言語用にすでに用意されていて、上記のページよりたどってそれらを調べることができる。
そのままでは動かない事例
AmazonのECS(E-Commerce Service)4.0より取得したXML文書を、JKL.ParseXMLというライブラリで上記のJSON形式に変換し、扱いやすくしてから処理している事例である。しかし、ここで紹介する理由は、JSONの利用例ではなく、このサンプルソースは「そのままでは動かない」という事実をかみしめるためである。コードのコメントに「url はセキュリティの関係でリレーする仕組みが必要でしょう」と書いてあるが、Ajaxで使用するXMLHttpRequestオブジェクトは、自分自身が置かれたドメインと同じドメインに対してしか通信を行うことができない。つまり、(Amazonのドメイン下にコンテンツを置くのでもない限り)、Amazon ECSにアクセスすることはできない。通信するためには、通信可能なドメイン内に通信をリレーするためのソフトが必要となる。
ちなみに、常にWebブラウザのアドレス欄を現在表示している情報と同期させているため、いつBookmarkしても同じ内容が再現できる点も注目である。
変更個所の背景を黄色く変えて知らせる
英語のページなのだが、Yellow Fade Techniqueについて述べている。これは、変更個所の背景を黄色に切り替え、それを徐々に背景色に戻していく(フェードしていく)というテクニックである。ページ切り替えを伴わず動的にページ内容が変化するAjaxでは、どこが変化したのかが分かりにくいことがあり、このようなテクニックを使って変化した個所を印象付けることが必要とされる。ほかに、ローディング中を示すインジケーターアイコンを表示したりするテクニックなども使われる。
仲間を捜せ! コミュニティ
日本語で運営される最も主要なAjax関連コミュニティである。入会登録時に送ったメールは、メンバーに配送されてしまうことに注意が必要である。このメールには、本文に自己紹介を書くように指示されているが、それが全員に送られてしまうということである。ぜひ、アピール度の高い自己紹介を考えて良好なコミュニケーションの切っ掛けとしよう。
Ajax うきうき Watch バックナンバー
- 第1回 Webアプリのユーザビリティを改善しまくるAjax
- 第2回 Ajax、それはWeb 2.0へと続く道
- 第3回 どんなに無茶をやっても「それもありかな」なAjax
- 第4回 自動車業界のAjaxを活用したキャンペーンを目撃せよ
- 第5回 “どのブラウザでも動くAjax”を共有財産として育てよう
- 第6回 プロプライエタリ2.0から考えるAjaxの公開/非公開部
- 第7回 メモリリークが小さくなったGoogle Maps APIの新版
- 第8回 “CGUI” 消費者が作り出すUIの時代突入
- 第9回 巨大化するAjaxライブラリをシンプルにする新たな流れ
- 第10回 地図のように年代を移動できるMITのAjax歴史年表
- 第11回 JSONがRFCになり、どんどんこなれるAjaxサービス
- 第12回 サーバが通信を開始できるComet活用Webチャット
- 第13回 オンラインゲームで検索精度を上げるGoogleの巧みさ
- 第14回 IE7とFirefox 2への利用者の大移動は起こるか?
- 第15回 グーグル検索エンジンを特定ジャンル専用に、Co-op
- 第16回 帯域やデバイス領域をフル活用させる“モバイルAjax”
- 第17回 新しい技術を模索するYahoo!、Google、MS
- 第18回 Ajaxの高度な使用例、Yahoo! pipes
- 第19回 Apollo参戦でウィジェット開発者の争奪戦が激化
- 第20回 Twitter登場で注目されるRTコミュニケーションツール
- 第21回 過熱するTwitterブームとMicrosoftのマッシュアップ
- 第22回 iPhoneのAjax戦略、そして今日もWeb APIは増加する
- 第23回 Ajax開発者がヒーローになるとき、それはいま!
- 第24回 携帯電話への拡張を進めるGoogleとWeb隠しコマンド
- 第25回 Ajaxで加速!? エンタープライズ2.0とWebOSの普及
- 第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり
- 第27回 ゲームから読み解く、俺スクリプト時代の知的な挑戦
- 第28回 マッシュアップ元年が終わり、2008年はどうなる?
- 第29回 Twitterやクラウドへも分岐するAjax/Web APIの道
- 第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript
- 第31回 新ブラウザ戦争はon fireだがJavaScriptはoffのナゾ
- 第32回 Google App EngineはAjaxへのハードルを下げるか?
- 最終回 Pure JavaScriptの動画再生やRPGも好きでした
AjaxとPHPでリッチクライアント
Ajaxを扱うためのサーバーサイドのPHPライブラリを紹介する。リリースされたライブラリ、AjaxACを活用して好みの検索窓に改造してみよう
AjaxでつくるインタラクティブWebアプリケーション
AjaxでWebフォトアルバムを、ゼロから開発する。ライブラリを用いて機能を作り上げていくステップを、具体的に解説する
| 古くて新しいAjaxの真実を見極める 「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう 最終更新 2005/8/2 |
||
ホワイトペーパー(TechTargetジャパン)
- いまさら聞けないTwitter超入門−@IT記事も対応なう (2010/2/4)
Twitterは最近話題のつぶやきツール。基本的な使い方から、iPhoneアプリの使い方、RTの解説、4人のご意見番の活用例や感想まで - HTML5は開発者側の都合。ユーザーには関係ない (2010/2/2)
3つのレンダリングエンジンを載せている“国産”ブラウザベンダは、HTML5やWeb/ブラウザの進化について何を語るのか - テキスト・フォント周りをキレイに見せるCSS、13選! (2010/1/29)
無数にあるCSSのプロパティを大まかに分類し、1つずつ紹介していく本連載。初回は、テキスト・フォント周りについて - OpenGL ESが大変な3Dアプリ開発を楽にするUnity (2010/1/27)
iPhoneゲーム開発に必須のOpenGL ES。そのコーディングに手こずっている方に有用なツールを紹介し簡単なサンプルを作成します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






