Computer >> Máy Tính >  >> Lập trình >> Javascript

Tại sao JavaScript không hỗ trợ đa luồng?

JavaScript từng là một luồng. Nó chạy bằng cách sử dụng cái được gọi là vòng lặp sự kiện.

Vòng lặp sự kiện có một công việc đơn giản - theo dõi Ngăn xếp cuộc gọi và Hàng đợi gọi lại. Nếu Ngăn xếp cuộc gọi trống, nó sẽ lấy sự kiện đầu tiên từ hàng đợi và sẽ đẩy nó đến Ngăn xếp cuộc gọi, nơi sẽ chạy nó một cách hiệu quả.

JS trong trình duyệt không hỗ trợ đa luồng trong vòng lặp sự kiện vì nó không cần thiết cho 99,999% trang web. Vòng lặp sự kiện xử lý mọi thứ một cách liền mạch.

Đối với các ứng dụng còn lại, nhà phát triển có thể sử dụng web worker. Web worker là một phương tiện đơn giản để nội dung web chạy các tập lệnh trong các luồng nền. Luồng công nhân có thể thực hiện các tác vụ mà không can thiệp vào giao diện người dùng. Ngoài ra, họ có thể thực hiện I / O bằng cách sử dụng XMLHttpRequest (mặc dù thuộc tính kênh và responseXML luôn rỗng). Sau khi được tạo, một worker có thể gửi thông báo đến mã JavaScript đã tạo ra nó bằng cách đăng thông báo lên một trình xử lý sự kiện được chỉ định bởi mã đó (và ngược lại). Bài viết này cung cấp giới thiệu chi tiết về cách sử dụng web worker.