Rumah > Artikel > hujung hadapan web > Bercakap secara ringkas tentang penyegerakan dan ketidaksegerakan kemahiran JavaScript_javascript
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…