ホームページ  >  記事  >  ウェブフロントエンド  >  jquery ajaxを同期に変更する方法

jquery ajaxを同期に変更する方法

WBOY
WBOYオリジナル
2022-09-09 16:13:533863ブラウズ

jquery では、ajax は async を false に設定して同期させることができます。デフォルトでは、jquery の ajax はパラメータ「asycn:false」を設定することで非同期リクエスト、つまり「async:true」になります。構文は「$.ajax({async: false})」です。

jquery ajaxを同期に変更する方法

この記事の動作環境: Windows 10 システム、jquery バージョン 3.6.1、Dell G3 コンピューター。

jquery ajax を同期に変更する方法

jquery の Ajax はデフォルトでは非同期リクエスト (async:true) ですが、パラメーター asycn:false を設定することで同期にすることができます

ajax のデフォルトは非同期リクエストです。ajax では、async 値に基づいて非同期リクエストかどうかを判断できます。async の値が false の場合、ajax リクエストは同期であることを意味します。 async is true, it means the ajax request is asynchronous. デフォルトでは、async の値は「true」であるため、ajax はデフォルトで非同期リクエストになります。

async を同期したい場合は、false に設定します (デフォルトは true)

var html = $.ajax({
url: “some.php”,
async: false
}).responseText;

または、Ajax 属性をグローバルに設定します

$.ajaxSetup({
async: false
});

次に、post を使用すると、get は次のようになります。 synchronized

例は次のとおりです:

10 桁の整数をランダムに生成し、バックエンド データベースと比較します。バックエンド データベース内のこの乱数が番号である場合は、1 つを再生成し、そうでない場合はこの番号を返します。

この要件にはフロントエンドとバックエンドのやり取りが含まれるため、ajax の使用が避けられないため、最初にこのようなコードを書きました。

//randID是封装的生成随机数的函数
function userID() {
    let ranid = parseInt(randID(1000000000, 10000000001));
    let data = null;
    $.ajax({
        type: 'post',
        url: './php/findID.php',
        data: 'id=' + ranid,
        success: function(res) {
            res = JSON.parse(res);
            isok = res.length;
            if (isok != 0) {
                userID();
            } else {               
               return ranid;
            }
        }
    })
}
console.log(userID());

出力結果:

jquery ajaxを同期に変更する方法

jquery.ajax solution

  • at Declare a関数配下のローカル変数(ajax外)

  • ajaxを同期処理として扱う(jquery.ajaxの修正方法: async: falseにこのコードを追加)

  • 宣言されたローカル変数を返します

function userID() {
    let ranid = parseInt(randID(1000000000, 10000000001));
    //声明的局部变量
    let data = null;
    $.ajax({
        type: 'post',
        url: './php/findID.php',
        data: 'id=' + ranid,
        //将ajax改为同步操作
        async: false,
        success: function(res) {
            res = JSON.parse(res);
            isok = res.length;
            if (isok != 0) {
                console.log(ranid);
                userID();
            } else {
                data = ranid;
            }
        }
    })
    //返回这个局部变量
    return data;
}
console.log(userID());

出力結果:

jquery ajaxを同期に変更する方法

関連チュートリアルの推奨事項: jQuery ビデオ チュートリアル

以上がjquery ajaxを同期に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。