Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa JavaScript Tidak Pernah Tidur: Panduan Mudah untuk Gelung Acara

Mengapa JavaScript Tidak Pernah Tidur: Panduan Mudah untuk Gelung Acara

Patricia Arquette
Patricia Arquetteasal
2024-10-30 03:24:03604semak imbas

JavaScript sebagai Bahasa Berbenang Tunggal: Sebut secara ringkas cara JavaScript mengendalikan hanya satu tugas pada satu masa, tetapi Gelung Acara menjadikannya kelihatan sebaliknya

. Cara Gelung Acara Berfungsi: Langkah-langkah utama dalam proses Gelung Acara

  • Timbunan: Timbunan panggilan menguruskan kod segerak.

  • Baris gilir: Baris gilir panggil balik memegang tugasan menunggu untuk dilaksanakan.

  • Gelung: Gelung Acara menyemak sama ada tindanan kosong sebelum
    mengalihkan tugas dari baris gilir ke tindanan.

Why JavaScript Never Sleeps: An Easy Guide to the Event Loop

Pecahan Aliran Kerja :

Pelaksanaan Kod Awal:

console.log('Hi');
$.get('url', function cb(data) {
  console.log(data);
});
console.log('JSConfEU');

  • Apabila kod ini mula dilaksanakan, console.log('Hi') ditambahkan pada Tindanan Panggilan dan "Hai" dicetak dalam Konsol.

Panggilan Fungsi Asynchronous ($.get):

  • Seterusnya, $.get('url', function cb(data) { ... }) ditemui. Fungsi ini memulakan permintaan HTTP untuk mendapatkan semula data daripada 'url'.

  • Daripada menyekat urutan utama, permintaan itu dihantar ke persekitaran API Web (selalunya sebahagian daripada penyemak imbas).

  • Fungsi panggil balik (cb) didaftarkan untuk dilaksanakan sebaik sahaja permintaan HTTP selesai, tetapi ia tidak dilaksanakan serta-merta. Permintaan HTTP terus dimuatkan dalam bahagian Web API, ditandakan sebagai XHR (XMLHttpRequest), yang biasa digunakan untuk mengendalikan permintaan rangkaian.

Bergerak ke Baris Segerak Seterusnya:

  • javaScript beralih ke baris seterusnya, console.log('JSConfEU'), yang ditambahkan pada Tindanan Panggilan. "JSConfEU" kemudiannya dicetak ke Konsol.

Gelung Acara dan Barisan Tugasan:

  • Selepas menyelesaikan semua kod segerak, Tindanan Panggilan menjadi kosong dan JavaScript menunggu sebarang tugas tak segerak selesai.

  • Setelah permintaan HTTP selesai, fungsi panggil balik (cb) dialihkan daripada API Web ke Barisan Tugas.

  • Gelung Acara secara berterusan menyemak sama ada Tindanan Panggilan kosong dan apabila kosong, Gelung Acara mengalihkan tugasan daripada Baris Gilir Tugasan kepada Tindanan Panggilan

Pelaksanaan Panggilan Balik:

  • Apabila Gelung Peristiwa meletakkan fungsi panggil balik pada Tindanan Panggilan, ia melaksanakan console.log(data); dalam fungsi panggil balik, mencetak data yang diterima daripada permintaan HTTP ke Konsol.

Ringkasan :

Aliran ini menunjukkan cara Gelung Acara mengendalikan kod tak segerak
oleh:

  • Memproses kod segerak serta-merta pada Tindanan Panggilan.

  • Mengendalikan tugas tak segerak dalam API Web dan, setelah selesai, mengalihkannya ke Barisan Tugasan.

  • Membenarkan Gelung Peristiwa mengalihkan tugas ke Tindanan Panggilan hanya apabila ia kosong, memastikan pelaksanaan kod tidak menyekat.

Atas ialah kandungan terperinci Mengapa JavaScript Tidak Pernah Tidur: Panduan Mudah untuk Gelung Acara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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