Có khả năng đa luồng JavaScript trong IE6 không?Đa luồng JavaScript trong IE6?
Có thư viện nào của bên thứ ba cho việc này không?
Có khả năng đa luồng JavaScript trong IE6 không?Đa luồng JavaScript trong IE6?
Có thư viện nào của bên thứ ba cho việc này không?
JavaScript does not support native multithreading trong trình duyệt web hiện tại. Ngay cả khi nó đã làm, tôi đặt cược IE 6 sẽ không có hỗ trợ nó :)
Chạy tập lệnh của bạn trong nhiều iframe có thể là một cách giải quyết, như Jason Kester suggested in another answer.
Bên cạnh đó, đối với các trình duyệt hiện đại, bạn có thể quan tâm kiểm tra ra Web Workers, nhưng điều này chắc chắn là một cái gì đó ra khỏi giải đấu IE 6 của:
Không có cách nào - chắc chắn không có trong IE6. Bạn có thể giả mạo nó bằng cách sử dụng rất nhiều window.setTimeout()
s.
Google Gears là một plugin làm việc với IE6 và bao gồm một cái gì đó gọi là WorkerPools. Google Gears dường như không còn được phát triển tích cực nữa, bởi vì nó đã cố gắng di chuyển hầu hết các ý tưởng của Gears sang HTML5. WorkerPools là các quá trình nền tảng cơ bản không chia sẻ trạng thái và chỉ giao tiếp thông qua các thông điệp. Trong HTML5, điều này đã biến thành WebWorkers. Bạn có thể tìm thêm thông tin tại đây: http://code.google.com/apis/gears/api_workerpool.html
Vâng, HTML5 sắp ra mắt với Web-Workers. Nhưng tôi rất nghi ngờ có một thư viện mà tạo ra một wrapper để sử dụng nó trong IE6.
tôi ngạc nhiên không ai đề cập đến nhân viên web! –
+1 để đề cập đến chúng :) –
Nếu bạn chỉ đơn thuần muốn viết mã đồng bộ và do đó tránh được việc phải đối phó với bộ xử lý văn kiện khắp nơi, bạn có thể thử: Strands
Chạy nhiệm vụ của bạn trong IFrame
Giả sử bạn đang nói về đa nhiệm ở phía máy khách, bạn có thể mở n khung trên trang của mình, mỗi khung được trỏ đến một trang trên miền của bạn.
Có rất nhiều cách để kiến trúc từ đó. Có lẽ cách đơn giản nhất là có một tệp .js bao gồm bạn chạy từ mỗi khung. Nó điện thoại nhà để parent.readyToGo() hoặc bất cứ điều gì, và được một số công việc được giao. Các phương thức công nhân có thể gọi một cái gì đó như parent.taskFinished() để báo cáo khi chúng được thực hiện.
Quan trọng nhất, đừng nghe bất kỳ ai bảo bạn không chạy ứng dụng javascript đa luồng quan trọng của bạn trên IE6. Tôi chắc rằng bạn có lý do chính đáng :)
+1 (Và đó là điều tốt, tôi nghĩ ;-) – ChristopheD
Còn nhân viên web thì sao? Không phải trong IE6, rõ ràng, nhưng vẫn ... – luiscubal
@luiscubal Có điểm tốt. Họ đang thực sự được đề cập trong bài tôi liên kết với ban đầu. Đã sửa đổi câu trả lời của tôi để bao gồm một số thông tin khác. –