Rumah  >  Artikel  >  hujung hadapan web  >  Bercakap secara ringkas tentang penyegerakan dan ketidaksegerakan kemahiran JavaScript_javascript

Bercakap secara ringkas tentang penyegerakan dan ketidaksegerakan kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 15:22:361155semak imbas

1. Lukiskan gambar dengan tangan untuk menggambarkan.

2. Mengapa JavaScript adalah satu benang (ini petikan daripada cikgu Ruan Yifeng)

Urut tunggal JavaScript berkaitan dengan tujuannya.

Sebagai bahasa skrip penyemak imbas, tujuan utama JavaScript adalah untuk berinteraksi dengan pengguna dan memanipulasi DOM.

Ini menentukan bahawa ia hanya boleh berbenang tunggal, jika tidak, ia akan menyebabkan masalah penyegerakan yang sangat kompleks.

Sebagai contoh, katakan JavaScript mempunyai dua utas pada masa yang sama Satu utas menambah kandungan pada nod DOM tertentu, dan utas lain memadamkan nod tersebut.

Jadi, untuk mengelakkan kerumitan, JavaScript telah menjadi satu utas sejak ia dilahirkan Ini telah menjadi ciri teras bahasa ini dan tidak akan berubah pada masa hadapan.

Untuk memanfaatkan kuasa pengkomputeran CPU berbilang teras, HTML5 mencadangkan standard Pekerja Web, yang membenarkan skrip JavaScript membuat berbilang rangkaian, tetapi urutan anak dikawal sepenuhnya oleh utas utama dan tidak boleh mengendalikan DOM.

Jadi, piawaian baharu ini tidak mengubah sifat JavaScript berbenang tunggal.

Portal: Penjelasan terperinci tentang gelung peristiwa (Gelung Acara) mekanisme pengendalian JavaScript

3. Di manakah pelaksanaan tak segerak bagi JavaScript

Seperti yang ditunjukkan dalam gambar pada permulaan, saya secara peribadi berpendapat bahawa urutan utama di sebelah kiri adalah segerak, dan baris gilir acara (baris gilir mesej) di sebelah kiri adalah tidak segerak.

Sudah tentu terdapat banyak tak segerak dalam JavaScript:

Ajax(XMLHttpRequest)
Image Tag,Script Tag,iframe(原理类似)
setTimeout/setInterval
CSS3 Transition/Animation
postMessage
Web Workers
Web Sockets
and more…

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