Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Asynchronous Dengan Berkesan Tanpa Menyekat UI?
Memanggil Fungsi JavaScript Tak Segerak Secara Segerak
Keperluan anda untuk membuat panggilan tak segerak segerak tanpa membekukan UI memberikan masalah yang unik dan mencabar. Malangnya, menyekat pelaksanaan JavaScript tanpa menghentikan UI tidak boleh dilaksanakan.
Satu penyelesaian berpotensi melibatkan penggunaan pembolehubah global untuk pertukaran data. Panggilan balik daripada panggilan tak segerak boleh mengubah suai pembolehubah global yang mengandungi data yang dikehendaki. Sementara itu, mekanisme tinjauan pendapat menyemak pembolehubah global pada selang masa yang tetap sehingga data tersedia.
function doSomething() { window.data = null; // Clear global data myAsynchronousCall(param1, callBack); var intvl = setInterval(function() { if (window.data) { clearInterval(intvl); console.log(window.data); } }, 100); } function callBack(d) { window.data = d; }
Walau bagaimanapun, penyelesaian yang lebih sesuai, berdasarkan contoh yang anda berikan, adalah mengikuti amalan terbaik dan menghantar panggilan balik function to doSomething():
function doSomething(func) { function callBack(d) { func(d); } myAsynchronousCall(param1, callBack); } doSomething(function(data) { console.log(data); });
Dengan menghantar fungsi ke doSomething(), anda boleh menggunakan panggilan tak segerak dengan betul tanpa menggunakan teknik yang boleh dipersoalkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Asynchronous Dengan Berkesan Tanpa Menyekat UI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!