• 締切済み

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はフォームの送信ボタンによって呼び出されます。

みんなの回答

回答No.2

定期通信はあくまで他の人が投稿した内容を受信する為だけに使用し、 自分の投稿内容を送信するのは送信ボタンを押したときだけ、というようにすべきかと思います。 毎回送信して、「入力途中」だったらどうするんですか?

回答No.1

検証してみたわけではないですが、ご質問文から解決策を推測してみました。 以下の2点を修正してみてはいかがでしょうか。 1.フォームに入力がない場合はAjaxでの送信を行わないようにする。 2.Ajaxで送信を行った後フォームの内容をクリアする。 何かの参考になればと思います。

関連するQ&A