客を待たせず、不安にさせず:Ajax活用の5つのポイントふたつめ
Ajaxを使えば、利用者が「待ち」状態の間、不安にならないように工夫することが出来る。今回はその例を示そう。
これは、正しい書き方ではない。なぜなら、非同期通信では通信中も、Webブラウザやその他のJavaScriptプログラムは動作し続けることができる。その為、このままでは通信が終わらないうちに画面表示のスクリプトが実行されてしまい、中身が空っぽになってしまうためだ。
そこで、非同期通信では通信が終了すると、自動的に決められたメソッドが呼ばれる仕組みが備わっている。これを「コールバック」と呼び、この仕組みを使って通信終了後に動作させたいスクリプトを記述するというわけだ。 JKL.ParseXMLの場合は、「async」メソッドのパラメータにコールバックのファンクションを指定する。そのファンクション内で、通信終了時の処理を記述するというわけだ。
さて、こうして非同期通信を行うと、Webブラウザの操作を妨げることがなくなる。ただし、処理に時間がかかること自体は解消できないため、このままでは操作が正しかったのか不安になるユーザーもいるだろう。そんな時は、ローディングアニメーションを利用すると良い。例えば、前回も紹介した「大学合格体験記」で「大学名で検索」の機能を試してみよう。
大学名を記入して[検索]ボタンをクリックすると、一瞬だけ矢印が回っているようなアニメーションが表示される(図1-1)。これだけでも、ユーザーは、処理が進んでいることを知って安心する。実は、このアニメーションは難しいものではなく、数コマのアニメーションGIFを表示させているだけだ。自分で作っても構わないが、Ajaxloadを利用すると便利だろう。
図1-1
このサービスは、ローディングアニメーションを無料でダウンロードできるサービスだ。図1-2や図1-3など30種類程度を入手することができる。しかも、色や背景色を自由にカスタマイズすることができるので、Webサイトの雰囲気と合わせることもできる。
図1-2
図1-3
それでは、実際の使い方を紹介しよう。次のスクリプトをご覧いただきたい。
- 特集: Ajax活用の5つのポイント (5件)
- 2日前のトップ記事
- 4日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
- 話題のタグ
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Adobe Acrobat 9--音声やクイズを埋め込んでeラーニング
ウェブ制作者が仲間と幸せに仕事をする方法:仲間との出会い
Excelで多用する雑多な操作を素早く片付けるための10のティップス(前編)
開発者のFirefox 3:非互換のアドオンをインストール
Techno Exchange
今知るべき仮想化情報
ZDNet Japan Green IT
「未来の、その先」をどう提言していくか
DELL連載第4回〜「Microsoft System Center」