今や,単にページの一部の書き換えや,ちょっとしたデータの送信にAjaxのテクニックを利用しているページは珍しくありません。サーバーとのデータのやり取りの多くに,JavaScriptを利用した非同期通信を行って,メールやカレンダー,ワープロなどのオフィス・ツールなど,まるでスタンドアロン・アプリケーションのような見た目を実現しているサイトも少なくありません。
筆者が,JavaScriptを使ってページの遷移をほとんど行わないインタフェースを初めて「意識的に」体験したのは,Gmailが最初だったかな,と思います。ああ,JavaScriptでこんなことができるんだなあ,と思った覚えがあります。
今回は,いまさらな感じも多少ありますが,Ajaxを使ったサイトを使っているときに感じていることなんかを挙げながら,使いやすさについて考えてみたいと思います。こんなことを書こうと思ったのは,旧来からあるページ遷移をベースとしたサイトと,Ajaxを利用してページ遷移を減らしているサイトでは,利用者が受ける印象が大きく違うと思うからです。
「Ajax」と「ページ遷移」と「状態遷移」
Ajaxを利用してページ遷移を少なくすることは,利用者にとってもメリットがあります。前回の記事でma.la氏の公演資料を題材に考えた際にも触れていますが,ページ遷移の代わりに,必要なデータだけをJavaScriptを利用してやり取りすることで,やり取りを行うデータの量や,書き換え(レンダリング)が必要な領域がずっと少なくてすみます。そのため,同じ情報を表示するにも,利用者を待たせる時間を減らすことが期待できるのです。
しかし,Ajaxのテクニックをたくさん利用しているサービスを利用しているサイトを使ってみたり,試してみたりしたときに,ちょっとした違和感を覚えることもあります。何でだろうなあ,と考えてみると,その一つに「状態の遷移を認識しづらい」という点があるんじゃないかな,と思いました。
ここで誤解の無いようにあらかじめ言っておきたいのですが,筆者は別にAjaxを使ったサービスやサイトが使いづらいとか,多用するのはいかがなものか,といった否定的な発言や苦言をするつもりは全くありません。ページ遷移をなくすことは,速度の向上だけでなく,データを非同期に送受信することで,利用者を必要以上に待たせてしまったり,思考を中断させることがなくなるため,非常に便利で有効なことだと思っています。ただ,ページ遷移をなくすことでわかりにくくなる部分もあるなあ,ということを考えてみたいのです。
で,どこがわかりにくくなるのかと言えば,すでに述べたように「状態の遷移を認識しづらい」という点ではないかと思います。ページ遷移は,利用者に状態が変化したことを結構強く意識させます。例えば,読者の皆さんが,何らかの入力フォームにデータを入力して,「送信」ボタンを押したとします。そして,ページが遷移して,例えば確認画面だったり,入力終了画面が出たり,もしくは入力した変更が反映された画面に切り替われば,「ああ,自分の入力したデータが反映したんだな」と認識するんじゃないでしょうか。
で,なんでそのように認識したのかな,と考えてみました。新しいページに表示されている内容の変化や,「情報を更新しました」といったようなメッセージももちろんですが,ブラウザの「読み込み中」のアニメーションなどが表示されて,ページ全体が再描画されることも,かなり大きく影響しているんじゃないかなあ,という感じがします。
それに対して,Ajaxによってページ遷移が起こらないまま,データが送受信した場合,本当にデータが送信されたのか,きちんと状態が変わったのかがいま一つわからない気がすることって無いでしょうか。筆者はたまに,そういうことを感じます。
これはおそらく,これまで様々なほかのウェブ・サイトで,ページ遷移とともに状態の遷移が起こることを何度も経験しているからなのかな,と思います。なので,ウェブ・サイトへのアクセスを,どれくらい体験しているのかとかいったことにも関係しているのかもしれません。
今後,Ajaxを利用したサイトがもっと当たり前に存在してくるようになれば,そうしたことを感じる筆者のような人も減ってくるのか,という気がしないわけではありません。しかし,画面遷移が無いほうがよいサイト(サービス)と,画面遷移があったほうがよいサイト(サービス)みたいな適性もありますし,そもそもウェブ・ページの仕組みがページ遷移を前提としていることもあるので,世の中すべてAjaxバリバリのサイトになるってことはきっと無いでしょう。
そして,おそらくウェブの世界に触れた人ならほとんどの人が触れているであろう検索エンジンサイトをはじめとして,多くの人がページ遷移を基本とした仕組みに慣れているんじゃないかな,と思います。
どうすれば安心できるんだろう
それでは,どうなっていれば安心できるかな,と考えるわけです。で,基本的には状態遷移がきちんと認識できることかなあ,と思います。