0

ユーザーがテキストを入力してEnterキーを押すと、メインページに投稿されるチャットルームタイプのものに取り組んでいます。PHPでビルドしました。動作中のモデルがありますが、新しい投稿を表示するには、ブラウザーの更新ボタンをクリックする必要があります。JavaScript でこれを自動更新する方法はありますか? 確かにあると思いますが、2 秒ごとに更新すると、非常に遅くなり、リソースを大量に消費するように思えます。それで、回避策はありますか?うまくいかない場合は、数秒ごとに更新することもできます。

私は現在 JavaScript の上級ユーザーです。コードにコメントを付けて、何を変更する必要があるかを説明してください。どうもありがとう!!

追伸、すべてのコメントは MySQL データベースに保存され、PHP によって自動生成されます。

4

1 に答える 1

1

はい、X 秒ごとにウィンドウの更新を行うことができますが、前述のように、このシナリオではページ全体をリロードする必要はありません。新しいテキスト コメントはすべて sql にあるとおっしゃいましたが、AJAX を使用して php 関数を呼び出し、ページをリロードせずに画面上で更新することができます。

setTimeout("updateChatAJAx()",2000);

この JavaScript 行は、「updatechatAJAx」JavaScript 関数を 2 秒ごとに呼び出します。

    //Load the message View
    function updateChatAJAx(){
        var ajaxRequest;  // The variable that makes Ajax possible!
        ajaxRequest = new XMLHttpRequest();
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        //The response
                        document.getElementById('MoreID').innerHTML = ajaxRequest.responseText;
                }
        }
        ajaxRequest.open("GET", "getMessages.php", true);
        ajaxRequest.send(null);
}

この上記の関数は、getMessages.php の出力を取得し、メッセージを "MoreID" div 要素に入れる ajax 関数になります。

于 2012-10-21T22:21:13.827 に答える