2011-08-06 45 views
5

Tôi đang cố gắng mô phỏng đa luồng bằng cách sử dụng khung nội tuyến nhưng tôi đã gặp một tình huống mà tôi không biết liệu nó có thực sự sử dụng quy trình iframe (thread) không.đa luồng bằng cách sử dụng iframe

Ví dụ: Nếu tôi gọi một phương thức nằm trong khung nội tuyến, nó sẽ chạy bằng chuỗi được tạo bởi khung nội tuyến hoặc nó sẽ chạy bằng chuỗi cửa sổ chính của phụ huynh?

Nếu đó là sau này, sau đó là nó có thể thay đổi phạm vi để các iframe gọi phương pháp này (vì vậy mà chương trình sử dụng một chủ đề khác nhau từ đó của cửa sổ cha mẹ)

EDIT: Có lẽ tôi nên rõ ràng hơn về điều này nhưng tôi không muốn sử dụng WebWorkers đơn giản chỉ vì tôi không có quyền truy cập vào các phần tử DOM.

Trả lời

4

Nếu bạn muốn chạy một số tác vụ nền chỉ cần sử dụng WebWorkers.

Thông thường bạn không cần phải mã nhiều chuỗi js. Bạn nên sử dụng vòng lặp sự kiện để thay thế.

+0

Tôi đồng ý về vòng lặp sự kiện, chủ đề không thêm sức mạnh xử lý, chúng chỉ là phương tiện để thực thi phân đoạn mã. Google làm thế nào node.js đang được sử dụng để hiểu sức mạnh của sự kiện trên luồng. –

+0

@KevinHakanson vâng tôi đồng ý. Nhưng việc sử dụng chính cho các luồng là chạy các phần tính toán dài trong nền. Bạn không thể sử dụng vòng lặp sự kiện cho các phần tính toán dài hạn, bạn sẽ ném chúng vào một quy trình mới. Trong trình duyệt, chúng tôi không thể tạo quy trình để chúng tôi sử dụng nhân viên web – Raynos

+0

Ứng dụng của tôi phức tạp hơn một chút so với chỉ tính toán. Tôi muốn có thể có nhiều luồng xử lý các phần tử SVG (tỷ lệ, dịch, xoay, vv) trong cửa sổ chính. – fogy

1

Hãy xem Using web workers từ tài liệu MDN.

Giao diện người lao động sinh ra các chuỗi cấp hệ điều hành thực và đồng thời có thể gây ra các hiệu ứng thú vị trong mã của bạn nếu bạn không cẩn thận. Tuy nhiên, trong trường hợp của nhân viên web, các thông tin liên lạc được kiểm soát cẩn thận điểm với các chủ đề khác có nghĩa là nó thực sự rất khó để gây ra vấn đề đồng thời. Không có quyền truy cập vào các thành phần an toàn không phải là chủ đề hoặc DOM và bạn phải chuyển dữ liệu cụ thể vào và ra khỏi một chủ đề thông qua các đối tượng được tuần tự hóa. Vì vậy, bạn phải làm việc thực sự khó khăn để gây ra các sự cố trong mã của bạn.

John Resig đã viết Computing with JavaScript Web Workers n trở lại vào năm 2009 về chủ đề này. Tuy nhiên, theo số When can I use, không có hỗ trợ IE cho đến IE10 để nó có thể không phù hợp với nhu cầu của bạn.

Các vấn đề liên quan