XMLHTTPRequestを使う際に気をつけておきたいこと

Share :

logo.gifBaekdal.comは、スカンジナビアでインターネットコーディネータとして働くThomas Baekdal氏のブログ。

世界をよりよくする為に情報アーキテクチャなどを研究中とのことです。

 #氏のプロフィールBiography | Baekdal.com  

そのBaekdal.comから、最近にわかに注目を集めているAjax(Asynchronous JavaScript and XML)を使う際の注意点についての記事がありました。

入門者としても示唆される部分が非常にありました。

記事はこちらの「XMLHttpRequest Usability Guidelines」から。

XMLHTTPRequrestを使う際に気をつけておきたいこと、です。

■ページのリロードはご法度

まず一つ目。

「Do not load entire pages」の項です。

XMLHttpRequestは、ページの一部分だけ変更することがウリです。

ですので、これはユーザ側も気をつけることですが、決してページ全体のリロードをしないことが大事です。

開発する立場からすれば、リロードを誘発するようなインターフェイスを用意すべきではない、と言う感じでしょうか。

フレームの欠点と同様に、URLも変わらず中身だけ変わっていきますので、ブックマークが出来なかったり、また、リロードではなくブラウザの「戻る」「進む」ボタンが思ったように使えません。

提供する機能が、例えば、郵便番号のリアルタイムインクリメントサーチ等なら、元々ユーザに「戻る」とか「検索ボックスに文字を入れた状態をブックマークする」といった要望が無いと思いますので、問題は発生しづらいでしょう。

しかし、Baekdal.comでもサンプルとしてあがっていますが、例えばGoogle Mapsでは、見たい地図をブックマークしようとしても、URLはずっと同じなので、ブックマークが出来ません。

これは不便です。

XMLHttpRequestではなく、通常のサーバサイドモノでしたら、(妙な言い方ですが)画面全体のリロードが許されるので、見ているページをそのままブックマークすることも可能です。

例えばMapionでは、

http://www.mapion.co.jp/c/f?el=139/45/20.789&scl=70000&uc=1&grp=all&nl=35/42/16.679

の様に、各ページへのアクセス手段を提供することも可能です。

これは仕組みとして仕方ないことなのでしょうが、中々不便ですね。

XMLHttpRequestを使うページで、例えばパラメータをURLと一緒に渡して、前回の状態を復元したりできるんでしょうか?

JavaScriptってURLからパラメータ取得出来たりするんでしょうかね。

[05/03/14追記] location.hashを利用して、状態を復元することができるみたいです。

 #参照:最速インターフェース研究会 :: [Ajax] location.hashを使ったセッション復元

[/追記終わり] [05/03/15追記]

しかも今度はこちら、「最速インターフェース研究会 :: [Ajax] エントリの動的ロード

凄いですな…上のカテゴリをクリックするとプルダウンメニューが出ます。

その中のエントリーにMouseOverすると、記事が動的に変わります。

もちろんURLは変わります。うーむ。すごい。

[/追記終わり]

URLの”index.html#top”のシャープより後ろの部分ですね。

逐一その部分を変えることで、擬似的にURLを変えて、擬似的に各状態に特定のURLを割り当てるようです。

なるほど。

■Webアプリとホームページの違いに気をつける

続いて「Know the difference between a web application and a website」の項

一般的なデスクトップアプリケーションと同様のガイドラインに親和性が高いWebアプリケーションと、WebSiteの派生であるXMLHttpRequestでは、寄り添うガイドラインが違うので、注意すべきとのことです。

User Experience的に良くないと言う事です。

どうなんでしょう、両者は元々それほど遠い位置にあるものではないでしょうし、インターフェイス自体も裏で使われている技術云々ではなく、提供される機能に対して適切に選ばれるべきですので、両者の違いをことさらに考える必要はないんじゃないかな、と思います。

次は「Do not break what the user is focusing on」です。

即座に反応できることに酔って、かえって使用者に余分な作業を強いたり、思考を中断させるような選択肢を提示したりして、使用者の行動を邪魔してはいけないと言うことです。

baekdal.comでもあげられていますが、インクリメンタルサーチで、一文字入れた瞬間にずらっとリストが出るのが良い例ですね。

検索するということは、ある程度目的が決まっているわけですから、アルファベット順でリストが出ることは全くの邪魔でしかありません(‘A`)

スピーディーさが損なわれるばかりか、否応が無しに目に入ってくるものに、余計な気を使う羽目に。

しかし、例えばAppleが次のOSで採用する Spotlightの用に、使用者が入力するテキストに関して、ある程度の曖昧さを持って検索するであろう場合などには、非常に有益な技術です。

使用者がそれを使う際の目的や事情を良く考えた上で、XMLHttpRequestの持つレスポンス性能の良さを使いましょう、と言う感じですね。

■そのほかの項目

そのほかの項目は、XMLHttpRequestを使えない人のことも考えようなどの小項目です。

と言うわけで、baekdal.comから、AjaxもTPOを考えて使いましょう、という警告でした。


Share :
お悩みの方へ。一回のご相談で解決することもあります
ラウンドナップ・コンサルティングへのお問合せ方法 お電話でのご相談もお気軽に。[048-234-3361](10〜16 土日祝日除)全国対応 24時間受付 お問合せメールフォーム

2 Comments

  1. 匿名 2005年3月16日
  2. Gone[管理人] 2005年3月16日