+ JavaScript の質問用スレッド vol.98 +at HP
+ JavaScript の質問用スレッド vol.98 + - 暇つぶし2ch655:Name_Not_Found
12/03/26 13:42:25.42 0LZD1uwT
クライアントからのXHRリクエストにより、サーバーで複数のファイルに対して処理をするのですが
このとき処理結果と進行状況をクライアントに知らせるようにしたいと思っています。
で、次のようなテストコードを書きました。

※perlCGI(抜粋) - バッファリングを無効にして5秒ごとメッセージを出力している
$| = 1;
print "Content-type: text/plain; charset=utf-8\n\n";
map { sleep 5; print $_; } @results;

※javascript(抜粋) - レスポンス受信のたびメッセージを切り取って表示している
var cursor = 0;
xhr.onreadystatechange = function() {
 if (xhr.readyState === 3) {
  var message = xhr.responseText.substring(cursor);
  cursor += message.length;
  callback(message); // メッセージをHTMLリストに追加
 }
 else if (xhr.readyState === 4) {
  callback("finish!!");
 }
};

一応目的は達しているのですが、処理のよっては長時間(1分以上)接続したままになります。
こうした長時間の接続って通常、問題ないでしょうか。
cometやwebsocketsのプログラミングは未経験ですが、調べてみた範囲では
順番に受信して終わるだけの上記の目的には大げさにも感じました。
アドバイスもらえたらうれしいです。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch