Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menukar jquery ajax kepada penyegerakan

Bagaimana untuk menukar jquery ajax kepada penyegerakan

WBOY
WBOYasal
2022-09-09 16:13:533957semak imbas

Dalam jquery, ajax boleh menetapkan async kepada false untuk menjadikannya segerak secara lalai, ajax dalam jquery ialah permintaan asynchronous, iaitu, "async:true", dengan menetapkan parameter "asycn:false", Sintaks ialah "$.ajax({async: false})".

Bagaimana untuk menukar jquery ajax kepada penyegerakan

Persekitaran pengendalian artikel ini: sistem Windows 10, versi jquery 3.6.1, komputer Dell G3.

Cara menukar jquery ajax kepada penyegerakan

Ajax dalam jquery ialah permintaan tak segerak secara lalai, iaitu async:true Anda boleh menjadikannya segerak dengan menetapkan parameter asycn:false

ajax ialah permintaan tak segerak secara lalai, anda boleh menentukan sama ada permintaan tak segerak berdasarkan nilai tak segerak, ini bermakna permintaan ajax adalah segerak adalah benar, ini bermakna permintaan ajax adalah tak segerak Secara lalai, nilai async adalah "benar", jadi ajax ialah permintaan tak segerak secara lalai.

Jika anda ingin menyegerakkan tak segerak, tetapkannya kepada palsu (lalai adalah benar)

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

Atau tetapkan atribut Ajax secara global

$.ajaxSetup({
async: false
});

Kemudian gunakan siaran , get is Contoh

yang disegerakkan adalah seperti berikut:

Menjana integer 10 digit secara rawak dan bandingkan dengan pangkalan data back-end Jika pangkalan data bahagian belakang Jika terdapat nombor rawak ini, jana semula satu, jika tidak, kembalikan nombor ini.

Keperluan ini melibatkan interaksi front-end dan back-end, jadi tidak dapat dielakkan untuk menggunakan ajax, jadi saya menulis sekeping kod ini pada permulaan.

//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());

Hasil keluaran:

Bagaimana untuk menukar jquery ajax kepada penyegerakan

Penyelesaian kepada jquery.ajax

  • Isytiharkan pembolehubah setempat di bawah fungsi (di luar ajax)

  • Anggap ajax sebagai pemprosesan segerak (kaedah pengubahsuaian jquery.ajax: tambah kod ini kepada async: false)

  • Kembalikan pembolehubah tempatan yang diisytiharkan

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());

Hasil keluaran:

Bagaimana untuk menukar jquery ajax kepada penyegerakan

Tutorial berkaitan yang disyorkan: tutorial video jQuery

Atas ialah kandungan terperinci Bagaimana untuk menukar jquery ajax kepada penyegerakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn