Rumah > Artikel > hujung hadapan web > Bagaimana untuk menukar jquery ajax kepada penyegerakan
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})".
Persekitaran pengendalian artikel ini: sistem Windows 10, versi jquery 3.6.1, komputer Dell G3.
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:
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:
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!