Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Javascript mencapai tingkah laku tak segerak walaupun tidak mempunyai ketaksegerakan terbina dalam?

Bagaimanakah Javascript mencapai tingkah laku tak segerak walaupun tidak mempunyai ketaksegerakan terbina dalam?

Susan Sarandon
Susan Sarandonasal
2024-11-12 16:00:03991semak imbas

How does Javascript achieve asynchronous behavior despite lacking built-in asynchronicity?

Mengapa Asynchrony dalam Javascript?

Selalunya dalam pembangunan, anda akan menemui istilah "fungsi panggil balik." Fungsi ini berjalan secara tidak segerak, bermakna ia dilaksanakan di luar aliran segerak standard sesuatu program. Tetapi apakah yang secara khusus mencetuskan gelagat tak segerak ini?

Sintaks Sahaja Tidak Cukup

Dalam javascript, sintaks fungsi panggil balik tidak menunjukkan tak segerak. Kedua-dua panggilan balik segerak dan tak segerak mempunyai struktur yang serupa.

Dokumentasi ialah Kunci

Satu-satunya cara muktamad untuk menentukan sama ada fungsi memanggil panggilan balik secara serentak atau tidak segerak adalah dengan berunding dokumentasi tersebut. Tanpa dokumentasi, anda juga boleh menjalankan ujian mudah untuk memastikan kelakuannya.

Melaksanakan Asynchrony: Two Paths

Javascript pada asasnya tidak mempunyai ketaksinkronan terbina dalam. Untuk mencapainya, pembangun mempunyai dua pilihan:

  • Manfaatkan fungsi tak segerak luaran seperti setTimeout atau pekerja web.
  • Tugaskan pelaksanaan kepada kod C.

< ;h3>Peranan Gelung Acara

Gelung acara ialah bahagian penting dalam seni bina javascript. Ia bertanggungjawab untuk memulakan pelaksanaan tak segerak dan mengendalikan acara seperti rangkaian I/O. Dengan menggunakan primitif I/O seperti select(), gelung acara menunggu berbilang operasi I/O dengan cekap tanpa membuat utas tambahan.

select() dan Panggilan Balik

Apabila operasi I/O selesai, pilih() memberitahu penterjemah. Jurubahasa kemudiannya mengenal pasti panggilan balik yang dikaitkan dengan saluran I/O yang berkaitan dan melaksanakannya. Mekanisme ini juga menyokong kefungsian setTimeout dan setInterval.

Ciri Tambahan: Thread untuk I/O

Pelayar moden dan Node.js telah berkembang pada acara tersebut model gelung. Mereka menggabungkan benang untuk mengendalikan I/O berasaskan fail. Setelah selesai, urutan ini berkomunikasi dengan gelung acara utama untuk mencetuskan pelaksanaan panggil balik yang sesuai.

Kesimpulan

Pelaksanaan tak segerak adalah wujud pada gelung acara dan berasaskan utas Pengurusan I/O. Memahami mekanisme asas ini meningkatkan pemahaman seseorang tentang pengaturcaraan tak segerak dalam Javascript dan teknologi yang berkaitan.

Atas ialah kandungan terperinci Bagaimanakah Javascript mencapai tingkah laku tak segerak walaupun tidak mempunyai ketaksegerakan terbina dalam?. 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