7つの小罪
「戻る」ボタンの誤用--これは誰もが犯す過ちである。「戻る」ボタンは、さまざまなウェブアプリケー ションにおいてあって当然と思われているボタンだ。ところが、経験の浅い多くのAjax開発者はいくつかの理由から、「戻る」ボタンをAjaxアプリケー ションに組み入れてしまい、結果としてユーザーの期待を裏切ってしまうのである。この理由としてはまず、「戻る」ボタンの処理を行ううえで JavaScriptが最適の言語ではないということが挙げられる。次に、Ajaxの設計では新たな考え方が要求されるという理由がある。
「戻る」ボタンは最適ではないということが、経験の浅いAjax開発者にとってすぐに判るとは限らない。「戻る」ボタンは、イベントに特化した「元に戻 す」機能を使いたい場合に、ページ更新のタイミングか、それよりも頻繁に必要となる機能である。この点について、コーディングを開始する前によく考えてお くべきである。さもなければ、同じことを2度行う羽目になってしまうはずだ。何が起こっているかをユーザーに知らせない--Ajaxを使用すると、ブラウザが提供しているウェブユーザーインタフェースではページのロード状況を完全には把握できなくなる。このため、何が起こっているのかをユーザーに対して明示的に伝えるために、視覚的な手がかりを組み込んでおく必要があるのだ。
リンクを設けない--これもAjaxで犯してしまいがちな過ちである。つまり、ユーザーがアプリケー ションの外でコピーアンドペーストできるようなURLを設けておかないという過ちだ。あなたも、URLをコピーして誰かに電子メールで送るという行為を何 度も行っているはずだ。Ajaxにおいて、ユーザーがコピーアンドペーストできるようなURLを提供する唯一の方法は、手作業でそれを提供することであ る。なぜだろうか?Ajaxアプリケーションでは「サーバが該当ページを応答してくるわけではない」からである。JavaScriptが動的に生成してい るのだ!ウェブアプリケーションサーバによって提供されることが当たり前になっているこの機能に対するユーザーの潜在的な需要を軽視してはいけない。サー バはURLを提供しないため、あなたが手間をかけてそれを提供する必要があるのだ。
ページ制御のためにコンテンツ制御を犠牲にする--動的なコンテンツ制御を模索している場合、従来のよ うな方法でクライアントとサーバとの間のやり取りを行わなくてもよいという仕組みは、とてもありがたいものであるはずだ。しかし、これには弊害もある。 ユーザーのエクスペリエンスを洗練したものにするために、ページの特定の領域を再描画することで、きめの細かい制御を行えることは確かである。しかし、こ れによってあなたはもっと大きなものを見失ってしまうのだ。
われわれは、ページの特定部分の処理に気を取られるあまり、そのページ全体がサーバによってリフレッシュされないということを忘れてしまいがち になる。こういったことにより、ページの断片化が起こったり、ユーザーの閲覧しているページ自体の情報が古くなるため、ユーザーエクペリエンスに混乱がも たらされたりすることもあるのだ!常にページ全体に気を配るようにし、動的なコンテンツ変更を引き起こすイベントによって、ユーザーの目に触れる部分すべ てが確実に変更されるようにしよう。スパイダを遮断する--Ajaxのメリットは、ページをリロードすることなしに膨大な量のテキストを フィードすることができる点にある。そしてこの点はAjaxのデメリットでもある。もしも検索エンジンに優しいアプリケーションを開発したければどうすれ ばよいのだろうか--あなたにも判るはずだ。ページの中身がどのようなものであれ、コンテンツを如実に物語るテキストを、スパイダが処理できるようにペー ジの上部にたくさん埋め込んでおくのである。
読めないテキストを生成する--Ajaxがサポートしている文字セットの数はそれほど多くはない。これ は生死にかかわる制限ではないものの、このことを忘れると大きな問題を引き起こすおそれがある。基本的な文字セットはUTF-8である。 JavaScriptが送信する内容がどのようなものであれ、適切にエンコードしておくことを忘れないようにしよう。また、サーバ側のコンテンツに文字 セットを設定しておくことも忘れないようにしよう。
JavaScriptを使用していないユーザーに対して、何が起こっているのかを知らせない--JavaScriptを利用できないブラウザというものも存在しており、それが意味していることをすぐに理解できないようなユーザーも存在している。こういったユーザーに対して、何が起こっているのかが判るようなヒントを与えるようにしよう。


댓글 없음:
댓글 쓰기