Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Asynchronous Dengan Berkesan Tanpa Menyekat UI?

Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Asynchronous Dengan Berkesan Tanpa Menyekat UI?

DDD
Lepaskan: 2024-11-16 11:39:03
asal
408 orang telah melayarinya

How Can I Effectively Call Asynchronous JavaScript Functions Without Blocking the 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;
}
Salin selepas log masuk

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);
});
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan