回答受付中の質問

AJAXチャット

AJAXを利用したチャットを作っています。
Prototype.jsの.PeriodicalUpdaterを使って定期的にリロードすると同じ情報が繰り返し表示されてしまいます。
例えば
------------------------
名前:aaa
コメント:テスト
-----------------------
とフォームに入力すると、
この情報がPeriodicalUpdaterで指定した秒数ごとに増えていってしまいます。。。

改善策を教えてください。

JavaSciriptの部分

function chat()
{
// パラメータを作成
var parameter =
"name=" + $F('name').escapeHTML() + "&" +
"email=" + $F('email').escapeHTML() + "&" +
"comment=" + $F('comment').escapeHTML();
// Ajax.Updaterオブジェクトを作成
var myAjax = new Ajax.Updater(
'placeholder', // 差し込む要素
'test.php', // 呼び出し先のURL
{
method: 'post', // メソッド
postBody: parameter, // ポストされるボディ部
}
);
var myajax = new Ajax.PeriodicalUpdater('placeholder', 'test.php', {postBody: parameter,frequency: 10});

}

postでサーバに送信してPHPで受け取ってます。
JavaScriptはフォームの送信ボタンによって呼び出されます。

投稿日時 - 2008-12-23 19:06:44

連想キーワード:

QNo.4578118

困ってます

45人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(2件中 1~2件目)

ANo.2

定期通信はあくまで他の人が投稿した内容を受信する為だけに使用し、
自分の投稿内容を送信するのは送信ボタンを押したときだけ、というようにすべきかと思います。

毎回送信して、「入力途中」だったらどうするんですか?

投稿日時 - 2009-01-28 08:41:36

ANo.1

検証してみたわけではないですが、ご質問文から解決策を推測してみました。
以下の2点を修正してみてはいかがでしょうか。

1.フォームに入力がない場合はAjaxでの送信を行わないようにする。
2.Ajaxで送信を行った後フォームの内容をクリアする。

何かの参考になればと思います。

投稿日時 - 2008-12-26 09:42:45

あわせてチェックしたい
  • IEでAjax ...
  • Livin', lovin', she's just a woman.の意味は? ...
  • Ajax.Requestについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら