Rumah > hujung hadapan web > tutorial js > Melambatkan panggilan ajax selama x saat

Melambatkan panggilan ajax selama x saat

Joseph Gordon-Levitt
Lepaskan: 2025-03-07 00:53:08
asal
825 orang telah melayarinya

3 Coretan kod jQuery untuk melambatkan panggilan Ajax selama x saat. Boleh digunakan untuk acara yang memerlukan tindakan sebelum mendapatkan data dari sisi pelayan melalui AJAX. UPDATE: Terdapat cara yang lebih mudah untuk melakukan ini dengan menggunakan fungsi setTimeout () - lihat di bawah untuk contoh. Nikmati! "

Delay AJAX call for X seconds

SetTimeout Alternative

Berikut adalah coretan yang akan mengeluarkan topeng pemuatan dari halaman anda, satu saat selepas laman web dimuatkan. Anda boleh menyiapkan topeng pemuatan untuk menutup seluruh laman web anda semasa laman web anda memuatkan menghalang orang melihat imej pemuatan misalnya.   Melambatkan panggilan ajax selama x saat

Soalan Lazim (Soalan Lazim) Mengenai Menunda Panggilan AJAX
<span>var pendingCall = { timeStamp: null, procID: null };
</span>
<span>$('li a').click(function (e) {
</span>    e<span>.preventDefault();
</span>    <span>var getUrl = $(this).attr("href");
</span>	<span>var timeStamp = Date.now();
</span>
    <span>var printCall = function () {
</span>        $<span>.ajax({
</span>            <span>url: getUrl,
</span>            <span>type: "GET",
</span>            <span>beforeSend: function () { },
</span>            <span>error: function (request) { alert(request) },
</span>            <span>success: function (data) {
</span>                <span>if (pendingCall.timeStamp != timeStamp) { return false; }
</span>                <span>$('#contentdiv').html(data);
</span>                pendingCall<span>.procID = null;
</span>            <span>}
</span>        <span>});
</span>    <span>};
</span>
    <span>if (pendingCall.procID) {
</span>        <span>clearTimeout(pendingCall.procID)
</span>    <span>};
</span>	<span>//set the time before call 3000 = 3 seconds
</span>    pendingCall <span>= { timeStamp: timeStamp, procID: setTimeout(printCall, 3000) };
</span><span>});</span>
Salin selepas log masuk
Apakah tujuan menangguhkan panggilan AJAX? Sebagai contoh, jika anda mempunyai ciri carian di laman web anda yang mencetuskan panggilan AJAX setiap kali pengguna menaip watak, ia boleh membawa kepada beban yang signifikan pada pelayan anda. Dengan memperkenalkan kelewatan, anda boleh memastikan panggilan AJAX hanya dibuat selepas pengguna berhenti menaip, mengurangkan beban pelayan. Ia juga boleh meningkatkan pengalaman pengguna dengan menghalang masa pemuatan yang tidak perlu dan memastikan hasil yang paling relevan dipaparkan. Fungsi ini membolehkan anda menentukan kelewatan dalam milisaat sebelum panggilan Ajax dibuat. Berikut adalah contoh asas:

setTimeout (function () { $ .ajax ({
<span>jQuery(document).ready(function () {
</span>	<span>setTimeout( "jQuery('#loading_mask').hide();", 1000 );
</span><span>});</span>
Salin selepas log masuk
// ajax options

});

}, 2000); // 2 saat kelewatan

Dalam contoh ini, panggilan AJAX akan ditangguhkan oleh 2 saat. Apabila anda memanggil SetTimeout, ia mengembalikan ID unik yang boleh digunakan untuk membatalkan masa tamat dengan fungsi ClearTimeout. Berikut adalah cara anda boleh melakukannya:

var timeOutId = setTimeOut (function () { $ .ajax ({

// ajax options

}};

, 2000); Sebelum ia mempunyai peluang untuk melaksanakan. Sekiranya kelewatan terlalu lama, ia boleh membuat laman web anda berasa perlahan dan tidak bertindak balas. Adalah penting untuk mencari keseimbangan antara mengurangkan beban pelayan dan mengekalkan pengalaman pengguna yang lancar.

Bagaimanakah saya dapat menentukan kelewatan optimum untuk panggilan AJAX? Titik permulaan yang baik adalah untuk menetapkan kelewatan beberapa ratus milisaat dan kemudian menyesuaikannya berdasarkan prestasi dan maklum balas pengguna.

Bolehkah saya melambatkan pelbagai panggilan Ajax sekaligus? Setiap panggilan setTimeout akan mengembalikan ID unik yang boleh digunakan untuk membatalkan masa tamat jika perlu. Anda boleh menggunakannya untuk melambatkan mana -mana kod JavaScript.

Bolehkah saya menggunakan setTimeout dalam gelung untuk menangguhkan pelbagai panggilan Ajax? Walau bagaimanapun, perlu diingat bahawa setTimeout tidak segerak, yang bermaksud gelung tidak akan menunggu masa tamat untuk selesai sebelum bergerak ke lelaran seterusnya. Ini boleh membawa kepada tingkah laku yang tidak dijangka jika tidak dikendalikan dengan betul.

Bolehkah saya melambatkan panggilan Ajax tanpa menggunakan jQuery? Walau bagaimanapun, JQuery menyediakan cara yang lebih mudah dan lebih mudah untuk membuat panggilan Ajax. Ini berguna apabila bekerja dengan operasi tak segerak seperti panggilan Ajax.

Atas ialah kandungan terperinci Melambatkan panggilan ajax selama x saat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan