$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
Terkadang success
fungsi bekerja dengan baik, terkadang tidak.
Bagaimana cara menetapkan batas waktu untuk permintaan ajax ini? Misalnya, 3 detik, jika waktu habis, maka tunjukkan kesalahan.
Masalahnya adalah, permintaan ajax membekukan blok sampai selesai. Jika server dimatikan sebentar, itu tidak akan pernah berakhir.
,
sana setelah}
.Jawaban:
Silakan baca
$.ajax
dokumentasinya , ini adalah topik yang dibahas.Anda dapat melihat jenis kesalahan apa yang dilemparkan dengan mengakses parameter textStatus dari
error: function(jqXHR, textStatus, errorThrown)
opsi. Opsinya adalah "batas waktu", "kesalahan", "batalkan", dan "parsererror".sumber
Berikut adalah beberapa contoh yang menunjukkan pengaturan dan mendeteksi batas waktu dalam paradigma lama dan baru jQuery.
Live Demo
Janji dengan jQuery 1.8+
jQuery 1.8+
jQuery <= 1.7.2
Perhatikan bahwa param textStatus (atau jqXHR.statusText ) akan memberi tahu Anda apa kesalahannya. Ini mungkin berguna jika Anda ingin tahu bahwa kegagalan itu disebabkan oleh batas waktu.
src: http://api.jquery.com/jQuery.ajax/
sumber
$.ajax().fail()
dan$.ajax().error()
?Anda dapat menggunakan
timeout
pengaturan di opsi ajax seperti ini:Baca semua tentang opsi ajax di sini: http://api.jquery.com/jQuery.ajax/
Ingatlah bahwa ketika timeout terjadi,
error
pawang dipicu dan bukansuccess
pawang :)sumber
gunakan
.ajax
fungsi jQuery berfitur lengkap . bandingkan dengan https://stackoverflow.com/a/3543713/1689451 sebagai contoh.tanpa pengujian, cukup gabungkan kode Anda dengan pertanyaan SO yang dirujuk:
sumber