1

ユーザー間のjqueryライブチャットを開発しました。

計画したハートビートがリソースを節約しているのか、それとも多くを浪費しているのかを知りたいですか?

これはハートビート コードです。

function chatheartbeat(){
    var dataString = 'action=chatheartbeat';
    $.ajax({
        url: "../chat.php",
        type: "POST",
        data: dataString,
        success: function(items){
            if(items != 0){
                $.each(items, function (i, elem) {
                    if ($("#chat_"+elem.from).length > 0) {
                    $("#chat_"+elem.from+" .chatmessege").append('<div class="chatboxmessagehead"><span>'+elem.from+':</span><a>'+elem.timee+'</a></div><br><div class="chatboxmessage">'+elem.msg+'</div>');
                    $("#chat_"+elem.from+" .chatmessege").scrollTop($("#chat_"+elem.from+" .chatmessege")[0].scrollHeight);
                    }else{
                    startchat(elem.from);
                    }
                });
            }
        }
    });
    setTimeout('chatheartbeat();',2000);
}
4

2 に答える 2

0

実際には、扱っているユーザーの数と、どれだけ高速にしたいかによって異なります。データベースからデータをフェッチする AJAX リクエストを行うことは、通常、やり過ぎだと考えられています。サーバーの速度とユーザーの容量にもよりますが、通話と通話の間に少なくとも5 秒の間隔を空ける必要があります。

于 2013-03-01T17:43:18.837 に答える
0

単純な ajax と php を使用してライブ チャットを開発することは、適切な方法ではありません。リアルタイム チャット システムを実現するには、node.js を使用する必要があります。フェイスブックが使っています。

通常の ajax と php の問題は、新しいデータが利用可能かどうかを確認するために 2 秒または 3 秒ごとにサーバーにクエリを実行する必要があり、サーバーに負荷がかかりすぎることです。

Node.js がその方法です。

于 2013-03-01T17:47:29.913 に答える