Bagaimana untuk menetapkan masa tamat permintaan Ajax? Perlukan contoh kod khusus
Dengan pembangunan aplikasi Internet, Ajax telah menjadi bahagian yang amat diperlukan dalam pembangunan Web. Apabila menghantar permintaan Ajax, kadangkala kita perlu mengehadkan masa tamat tempoh permintaan untuk mengelakkan permintaan daripada terlalu lama, mengakibatkan pengalaman pengguna yang buruk atau pelayar terhenti. Artikel ini akan memperkenalkan secara terperinci cara menetapkan masa tamat permintaan Ajax dan memberikan contoh kod khusus.
Menetapkan masa tamat permintaan Ajax terutamanya perlu dicapai melalui atribut tamat masa objek XMLHttpRequest. Sifat ini digunakan untuk menetapkan masa menunggu maksimum untuk permintaan (dalam milisaat Selepas masa ini, permintaan akan dibatalkan). Kita boleh mengikuti langkah di bawah untuk menetapkan masa tamat tempoh permintaan Ajax:
Langkah 1: Cipta objek XMLHttpRequest
Untuk menghantar permintaan Ajax, anda perlu mencipta objek XMLHttpRequest terlebih dahulu. Anda boleh menggunakan kod berikut untuk mencipta objek XMLHttpRequest yang serasi dengan pelayar utama:
var xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
Langkah 2: Tetapkan parameter permintaan dan masa tamat tempoh
Sebelum menghantar permintaan Ajax, kami perlu menetapkan parameter permintaan dan masa tamat tempoh. Kod berikut menunjukkan cara untuk menetapkan parameter dan masa tamat tempoh permintaan Ajax:
xhr.open("GET", "your_url_here", true); xhr.timeout = 5000; // 设置请求的过期时间为5秒(5000毫秒)
Dalam kod di atas, kami menggunakan kaedah open() untuk menetapkan jenis permintaan (GET) dan alamat (your_url_here), dan tetapkan yang ketiga parameter kepada benar menunjukkan permintaan tak segerak. Seterusnya, kami menggunakan atribut tamat masa untuk menetapkan masa tamat tempoh permintaan kepada 5000 milisaat (iaitu 5 saat).
Langkah 3: Pantau perubahan status permintaan
Selepas menghantar permintaan Ajax, kami perlu memantau perubahan status permintaan supaya kami boleh mengendalikannya dengan sewajarnya apabila permintaan selesai atau tamat tempoh. Berikut ialah contoh kod yang mendengar perubahan status permintaan:
xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { // 请求成功,执行相应的操作 } else { // 请求失败,执行相应的操作 } } }; xhr.ontimeout = function() { // 请求超时,执行相应的操作 };
Dalam kod di atas, kami menggunakan atribut onreadystatechange untuk mendengar perubahan status permintaan. Apabila readyState sama dengan 4, ia menunjukkan bahawa permintaan telah selesai. Jika status bersamaan dengan 200, ini bermakna permintaan itu berjaya dan operasi yang sepadan dilakukan jika tidak, ini bermakna permintaan itu gagal dan operasi yang sepadan dilakukan. Jika permintaan tamat, acara ontimeout akan dicetuskan dan kami boleh mengendalikan masa tamat dalam fungsi panggil balik yang sepadan.
Langkah 4: Hantar Permintaan Ajax
Langkah terakhir ialah menghantar permintaan Ajax. Kod berikut menunjukkan cara menghantar permintaan Ajax dan melaksanakan operasi yang sepadan:
xhr.send();
Dalam kod di atas, kami menggunakan kaedah send() untuk menghantar permintaan Ajax.
Ringkasnya, melalui langkah di atas, kami boleh menetapkan masa tamat permintaan Ajax dengan mudah. Berikut ialah contoh kod lengkap:
var xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { // 请求成功,执行相应的操作 } else { // 请求失败,执行相应的操作 } } }; xhr.ontimeout = function() { // 请求超时,执行相应的操作 }; xhr.open("GET", "your_url_here", true); xhr.timeout = 5000; // 设置请求的过期时间为5秒(5000毫秒) xhr.send();
Dengan contoh kod di atas, anda boleh menetapkan masa tamat tempoh permintaan Ajax mengikut keperluan sebenar, dan melakukan operasi yang sepadan apabila permintaan selesai atau tamat masa. Saya harap artikel ini dapat membantu anda memahami dan menggunakan tetapan masa tamat tempoh permintaan Ajax.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan tamat masa untuk permintaan Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!