Ajax による処理を繰り返し行うためのサンプル

Home » Ajax による処理を繰り返し行うためのサンプル

このページは、

317 名前:ロプロス ◆5h89eOriMU [sage]: 2009/01/02(金) 23:46:35 ID:htQohB0Y0 (2)
あー、ダメだー。今日はこれでタイムアップ。

クライアントとサーバの間で非同期通信をする方法はわかったのですが、
それを何度か繰り返す方法がよくわかりませぬ。

に対するお返事です。

サンプルの概要

以下の処理を行うサンプルプログラムを、何パターンか用意しています。

  1. HTML ファイルのテストフォームに回数を指定し 実行 ボタンを押すと、Ajax による非同期処理が始まります。
  2. サーバから乱数を含んだ XML が返されます。
  3. 返された XML に含まれる乱数をドキュメント末尾に追加します。

サンプルプログラム

上記の概要にそった処理を実行するサンプルプログラムです。
細かい差異については各ページに記載しています。

  1. XMLHttpRequest によるサンプル
  2. prototype.js によるサンプル
  3. 再帰により同時リクエスト数を制限するサンプル
  4. mutex により同時リクエスト数を制限するサンプル

サーバ側の処理

各サンプルから呼び出されるサーバ側のハンドラはすべて同じものを使用しています。
PHP なんで直接中身を見ていただけませんがこんな感じです。

<?php
header("Content-Type: text/xml; charset=utf-8");
header("Pragma: no-cache");
header("Cache-Control: no-cache");
?>
<rand><?php echo rand() ?></rand>

サーバから返すレスポンスの Content-Type は、text/xml か application/xml にしておく必要があります。
詳しくは、ajax - Content-Type: 許容判定 をご覧ください。

IE は XMLHttpRequest 経由で取得したレスポンスをキャッシュするようなので、Pragma と Cache-Control で no-cache を指定しておいた方が良いでしょう。