作者:上村崇 フリーランスのIT系エンジニア
twitter:@uemera facebook:uemura

【連載】Webサービス制作日記#06 jQueryでAjaxする


スポンサードサーチ検索ツールは、一度に複数の検索を実行出来るようにしています。
ユーザがあらかじめ設定しておいた複数のキーワードごとに、一度に検索を実行して現在順位をYahooからとってきて一度に表示します。
しかしここで問題になるのが処理実行時間です。
たくさんの問い合わせを一度に行うと処理に時間がかかりますので、ユーザのイライラの原因になります。
 
201010052214.jpg
 
これではWebサーバ⇔Yahoo間の通信が全部終わらないとユーザに結果を返せないので、その間ユーザはずっと待たされることになります。
全ての通信の順序が決まっており、1つの通信が終わらないと次へ進めない同期通信なのでそのような動きになります。
 
そこで、体感速度を上げるためにAjaxを使用します。
Ajaxは”Asynchronous JavaScript + XML”の略であり、
Asynchronous=非同期
を意味します。通信順序が特に決まっていない通信ができます。
ユーザに見せる画面を先に送っておいて、あとから結果を返すことで、見かけ上の速度を早めることができます。
何も表示されないままで待たされるよりも、少しずつ何かが出てくる方が待たされ感が少ないということです。
 
201010052229.jpg
 
図では順番に処理が流れているように見えますが、実際はAjax通信をしている紫の矢印の実行順序は決まっていないし、もどってくる順序も決まっていません。
 
Ajaxを実現するツールとして、jQueryPrototype.jsMooToolsなどがあります。
ここでは人気の高いjQueryを使います。
 
JavaScript Framework 人気があるのはどれ? | Diaspar Journal
http://diaspar.jp/node/141
 
jQueryのようなAjaxを使うには、Javascriptについて知っておく必要があります。
このへんが参考になるのではないでしょうか。
【libro】 初心者のためのjQueryプログラミング入門
http://libro99.appspot.com/index2?id=52003

 
 
 
過去のエントリ
【連載】Webサービス制作日記#05 HTMLパーサを使う
【連載】Webサービス制作日記#04 データベースを使う
【連載】Webサービス制作日記#03 プラットフォームを決める
【連載】Webサービス制作日記#02 要件を決める
【連載】Webサービス制作日記#01 何を作ろうとしているか

関連記事


【連載】Webサービス制作日記#09 CakePHPのデータベースアクセスは便利
CakePHPは、PHPの開発でよく使う機能や方法論をフレームワークという形であらかじめ用意してくれていますので、1からPHPでコードを書く必要が無いことが多いです。 データベースへのアクセスは通常はSQLを使いますが、 …

【連載】Webサービス制作日記#08 グラフ描画ツールを使う
グラフ描画ツールとして、jqPlotを使うことにします。 jqPlotは、jQueryのプラグインとして動作します。     javascriptのグラフ描画ツールは最近かなり充実してきている感じがします。jQueryは …

【連載】Webサービス制作日記#07 cronでスケジュール実行
スポンサードサーチ検索ツールには、リアルタイムに検索できる機能だけではなくて、過去のデータを遡って表示したり時系列グラフ表示する機能をつけます。 そのためには、過去の順位情報を残しておかなければなりません。 毎日定期的に …

【連載】Webサービス制作日記#05 HTMLパーサを使う
順位検索ツールの処理フロー スポンサードサーチ順位検索ツールは、以下のようなデータのやりとりをすることになります。     ユーザからのリクエストをWebサーバで受けたら、それをトリガにしてYahooに検索に行きます。 …

【連載】Webサービス制作日記#03 プラットフォームを決める
どのツールを使って作るかを決めます。 一度使うと決めたツールは、あとから変えたいと思ってもなかなか変えられないことが多いので、ここはよく考える必要があります。   どの言語を使うか? プラットフォームは? 例えばプログラ …

2 Replies to “【連載】Webサービス制作日記#06 jQueryでAjaxする”

  1. Ajaxってなんだか今風のユーザーインターフェース実現してくれるもの♪
    みたいないい加減な認識しかありませんでした。
    勉強になります!
    こんなこともできるんですね。

  2. Ajaxでいろいろ出来ることがあるんですが、これはほんの一例です。
    もちろんいろんなユーザーインターフェースを実装することもAjaxでできます。
    今回挙げた機能は、GoogleMapでやってることをイメージしてもらえれば分かりやすいと思います。
    地図画面をスクロールすると、ブロックごとに分けられた地図画像が不規則な順番で表示され、やがて1枚の地図になるのが分かるでしょう。
    そこでは1枚の小さな地図の断片それぞれがAjaxによる非同期通信をしています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です