-3

チャット メッセージを取得するために以下のようなことを言うチャット システムのコードを見たことがあります。AJAX が非同期であることがわかりました。ここでの setTimeout は、チャットログを定期的に更新しています。では、全体として非同期通信なのでしょうか。$.ajax は同期または非同期ですか? ここでの意味は何ですか????

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/

非同期通信とは、クライアントがサーバーにバグを与えることなく、新しいデータがある場合、サーバーがクライアントにデータを送信する必要があることを意味します。ではない?以下で何が起こっているのか詳細な説明をお願いします....... jquery-ajaxでチャットログを自動的に更新するより良い解決策

x 秒ごとにチェックしてウィンドウ全体を再度リロードする場合、ここで $.ajax を使用する必要はありません。コードを複雑にするだけです....データベースへのphp-sqlリクエストとsetimeoutだけを使用することの違いは何ですか....最初のケースのコスト:チャット全体がオーバーロードされ、オーバー+ ajaxコール、2番目のコストケース: チャット全体が何度も読み込まれるので、パフォーマンスに応じて ajax を使用する利点がわかりません.... 実際、後者の方が優れていることがわかります. ???

function updateMsg()
{
$.ajax({
        url:"db.php",
        type:"POST",
        success:function(data){
        }
});
setTimeout("updateMsg()",7000);
}
4

2 に答える 2

0

デフォルトでは async です:

async (デフォルト: true) タイプ: ブール値 デフォルトでは、すべてのリクエストは非同期で送信されます (つまり、デフォルトで true に設定されています)。同期リクエストが必要な場合は、このオプションを false に設定します。クロスドメイン リクエストと dataType: "jsonp" リクエストは、同期操作をサポートしていません。同期リクエストはブラウザを一時的にロックし、リクエストがアクティブな間はすべてのアクションを無効にする場合があることに注意してください。jQuery 1.8 以降、jqXHR ($.Deferred) で async: false を使用することは推奨されなくなりました。jqXHR.done() や非推奨の jqXHR.success() などの jqXHR オブジェクトの対応するメソッドの代わりに、成功/エラー/完了のコールバック オプションを使用する必要があります。

 function updateMsg() {
        $.ajax({
            url: "db.php",
            type: "POST",
            async: true, //or false
            success: function (data) {}
        });

    }
于 2013-04-27T08:13:31.407 に答える
0

asyncパラメータを使用できます。asyncparam が決定します: リクエストが同期か非同期か

$.ajax({
        url:"db.php",
        type:"POST",  
        async: true, // async: false
于 2013-04-27T08:15:31.107 に答える