Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Adakah enjin javascript berbenang tunggal?

Adakah enjin javascript berbenang tunggal?

WBOY
WBOYasal
2022-03-03 10:35:371656semak imbas

Enjin JavaScript adalah satu benang; tujuan utama JavaScript adalah untuk berinteraksi dengan pengguna dan mengendalikan DOM, contohnya untuk mengelakkan masalah penyegerakan yang rumit, supaya ia hanya boleh melakukan satu perkara pada masa yang sama, jadi JavaScript adalah satu benang .

Adakah enjin javascript berbenang tunggal?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.

Adakah enjin JavaScript berbenang tunggal?

Mengapa JS berbenang tunggal? Mengapakah ia memerlukan asynchronous?

Begitu juga, kami akan menjawab soalan berdasarkan senario kehidupan sebenar

(1) Mengapa JS berbenang tunggal?

Berbenang tunggal: sama Anda hanya boleh melakukan satu perkara pada satu masa utas tunggal JavaScript berkaitan dengan tujuannya. Sebagai bahasa skrip pelayar, tujuan utama JavaScript adalah untuk berinteraksi dengan pengguna dan memanipulasi DOM. Ini menentukan bahawa ia hanya boleh menjadi satu-benang, 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.

Untuk memanfaatkan kuasa pengkomputeran CPU berbilang teras, HTML5 mencadangkan standard Pekerja Web, yang membenarkan skrip JavaScript mencipta berbilang rangkaian, tetapi urutan anak dikawal sepenuhnya oleh utas utama dan tidak dibenarkan mengendalikan DOM. Oleh itu, piawaian baharu ini tidak mengubah sifat berbenang tunggal JavaScript.

JS pada asalnya direka untuk digunakan dalam penyemak imbas, jadi bayangkan jika JS dalam penyemak imbas adalah berbilang benang.

Penerangan senario:

Jadi kini terdapat 2 proses, proses1 dan proses2 Memandangkan ia adalah JS berbilang proses, ia beroperasi pada dom yang sama pada masa yang sama 🎜>proses1 Padam DOM disunting, dan proses2 mengedit DOM dan mengeluarkan dua arahan yang bercanggah pada masa yang sama Bagaimana penyemak imbas harus melaksanakannya

Fikirkan dengan cara ini, ia sepatutnya mudah difahami JS direka bentuk untuk menjadi satu benang.

(2) Mengapakah JS memerlukan asynchronous?

Penerangan adegan:

Jika tak segerak tidak wujud dalam JS, ia hanya boleh dilaksanakan daripada atas ke bawah. Jika baris sebelumnya mengambil masa yang lama untuk dihuraikan, kod di bawah akan disekat. Bagi pengguna, penyekatan bermaksud "tersekat", yang membawa kepada pengalaman pengguna yang buruk

Jadi, terdapat pelaksanaan tak segerak dalam JS.

Cadangan berkaitan:

Tutorial pembelajaran javascript

Atas ialah kandungan terperinci Adakah enjin javascript berbenang tunggal?. 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