2010-03-15 49 views

Trả lời

11

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:

+2

+1 (Và đó là điều tốt, tôi nghĩ ;-) – ChristopheD

+1

Còn nhân viên web thì sao? Không phải trong IE6, rõ ràng, nhưng vẫn ... – luiscubal

+0

@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. –

1

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

2

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.

Does my browser support web workers?

+0

tôi ngạc nhiên không ai đề cập đến nhân viên web! –

+0

+1 để đề cập đến chúng :) –

1

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

3

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 :)