PR

Ajaxの注意点をおさえる

 数多くのメリットを持つAjaxだが,うまく使いこなすためには,いくつか注意すべき点がある。

■その1:技術者不足

 Ajaxの開発言語であるJavaScriptを徹底的に使いこなせる技術者は,まだそれほど多くない。ユーザー企業はAjaxを採用する上でこの点を留意しておきたい。

■その2:開発環境

 JavaScriptで本格的なプログラミングをするための開発環境は,整備されているとはまだ言い難い。JavaScriptがこれまで簡単なエラーチェック程度の用途が中心だったことが,その主な理由である。

■その3:フレームワークの選択

 RubyであればRuby on Rails,JavaであればStruts,Spring,Hibernateといった定番と言えるフレームワークがある。だが,Ajaxにはまだ存在しない。今様々なフレームワークが提案されているが,現時点ではその選択が難しい。現在利用されている代表的なAjaxフレームワークとその特徴を表2にまとめた。

表2
表2

■その4:性能

 Ajaxを過度に使用するとHTTPリクエストが多くなり,サーバーに負荷をかけてしまう。設計段階で十分に注意しておく必要がある。例えば,図5で示したような点は意識しておく必要がある。

図5
図5●Ajaxリクエスト設計上の留意

■その5:クロスブラウザ問題

 先ほども述べたように,Ajaxはメジャーなブラウザであれば利用可能な技術だ。しかし,ブラウザ間で微妙な差異が出てしまう部分もある。典型的な例を図6で示す。これは,Ajaxの肝であるXMLHttpRequestオブジェクトを生成するコードだ。ご覧いただければお分かりのように,IEとFireFoxでオブジェクトの生成のやり方が異なっている。この問題自体はよく知られているため,Ajaxフレームワークを利用すればフレームワーク側で吸収してくれる。この他にもCSSの微妙な違いなどブラウザ間の違いがいくつか存在するので,留意したい。

図6
図6●WebブラウザによるXMLHttpRequestオブジェクト生成方法の違い

■その6:「戻る」ボタン問題

 Ajaxでは,ページを遷移させることなく,画面を書き換えることができる。このため,ブラウザの「戻る」ボタンを押したときの挙動がユーザーの期待通りにならないケースがある。図7に例を示す。

図7
図7●「戻る」ボタンの挙動

■その7:SSL問題

 AjaxでSSLを使う際には気を配る必要がある。図8をご覧いただきたい。この画面では,左上にログインするためユーザー・インタフェースを配置している。ユーザーがログイン操作をする際,Ajaxを使って入力されたユーザーIDとパスワードをサーバーに送り,認証すれば,ページのリロードなしにログイン処理を完了できる。

図8
図8●「戻る」ボタンの挙動

 ただ,このようなユーザー・インタフェースを実現する場合は配慮が必要だ。現在のWebアプリケーションでは,パスワードのような重要なデータを送る場合,SSLを使うのが一般的である。Ajaxの通信をSSLで保護すること自体はもちろん可能だ。ただしそれは,HTMLページ全体がSSLで読み込まれている場合に限っての話である。HTMLページが普通のHTTPでリクエストされた場合,そのページ内でのAjaxによる通信にのみSSLを適用することはできない。

検討しない理由はないほどに

 このようにAjaxには知っておくべき注意点があるものの,特殊なプラグインなしでリッチなユーザー・インタフェースを備えたWebアプリケーション構築できるという点は,大きな魅力だ。Ajaxは今後ますます注目を集めることだろう。フレームワークの整備,開発環境の不足,JavaScriptエンジニアの絶対数の不足,ブラウザ間の互換性といった問題は,今後Ajaxの適用が広がる中で,徐々に解決されていくはずだ。

 「普通の企業」は,Ajaxとどう付き合うべきだろうか。AjaxはOSやブラウザといった環境を限定できないインターネット上で発展してきた技術だ。しかし,企業システムはOSやブラウザを限定することは比較的容易であるはずだ。このため,記事中で紹介した.NET Smart ClientやJava Appletも有効な選択肢と言える。したがって,Ajaxを企業システムに無理に適用する必要はないと筆者は考えている。

 しかし,インターネット上ではAjaxが今後も普及していくことは確実だ。それを念頭に置いて考えると,Ajax向けの使い勝手の良い開発環境やフレームワークが登場し,生産性の向上やノウハウの蓄積が進んでいくことは容易に予測できる。このような状況になれば,企業システムに採用するメリットは十分出てくるはずだ。こうなるまで待つのも一つの判断であるし,将来を見越して今の段階から取り組むという判断もあり得るだろう。

 自社を取り巻く環境を十分に考慮し,最適な選択をしてほしい。

中村 正弘 ウルシステムズ 主席コンサルタント
ここ数年は,コンシューマ向けのWebサイトを構築するプロジェクトに従事する機会が多い。その甲斐あって,Web2.0関連の様々な考え方を実プロジェクトで試す機会に恵まれている。この経験を生かし,Web2.0ならではの開発手法をアーキテクチャ込みで定義できないか模索中。


≪次回(最終回)は「Apolloに次世代アプリの姿を見る」をお送りします≫