2011-07-07 38 views
8

JavaScript là một chuỗi - Silverlight không được, nhưng tương tác giữa JavaScript và Silverlight phải được thực hiện trên chuỗi giao diện người dùng Silverlight.Mối quan hệ giữa chuỗi JavaScript và chuỗi giao diện người dùng Silverlight là gì?

Tuy nhiên, chính xác mối quan hệ giữa chuỗi giao diện người dùng Silverlight và chuỗi JavaScript là gì? Có phải chúng theo bất kỳ định nghĩa nào cùng một luồng, hoặc các luồng riêng biệt với các tương tác được thực hiện hoàn toàn thông qua các vòng lặp sự kiện tương ứng và chặn một luồng khi chờ đợi khác (khi đánh giá/gọi JavaScript từ Silverlight chẳng hạn)? Nói cách khác, JavaScript có thể thực hiện đồng thời với các hành động Silverlight trên chuỗi giao diện người dùng (và có thể nhiều phiên bản Silverlight được lưu trữ trong cùng một trang có chủ đề giao diện người dùng của họ đang chạy đồng thời) không?

Trả lời

0

Tôi chưa sử dụng Silverlight, nhưng tôi đã thực hiện công việc khá rộng rãi với Java Applet và Flash, vì vậy tôi sẽ nhận xét từ quan điểm đó.

Bạn nói đúng là JavaScript là một luồng. Bất cứ điều gì gây ra nó để ngăn chặn sẽ ngăn chặn tất cả các tính toán và hành động khác. Nó thậm chí sẽ khóa trình duyệt trong một số trường hợp, mặc dù các trình duyệt mới hơn đang nhận được tốt hơn trong việc tách ra các tab thành các quá trình riêng biệt, giúp.

Bất kỳ chuỗi nào trong plugin như Silverlight hoàn toàn tách biệt với JavaScript trong trình duyệt. Tuy nhiên, các giao diện giữa chúng có thể bị chặn. Nếu chuỗi giao diện người dùng của Silverlight chặn khi giao tiếp với JS gốc, thì sẽ không có công việc nào khác được thực hiện trên chuỗi đó trong khi chờ đợi. Các chủ đề khác có thể tiếp tục hoạt động như bình thường.

Để giải quyết câu hỏi của bạn về việc liệu JS có thể thực thi đồng thời trong khi các tác vụ trên chuỗi giao diện người dùng Silverlight đang chạy, tôi không thấy tại sao không. Họ có thời gian hoạt động riêng biệt, và miễn là họ không liên lạc (điều này sẽ khiến một người chặn), họ sẽ có thể tiếp tục chạy tốt trong sự cô lập.

Đường ruột của tôi cho biết điều tương tự cũng đúng với nhiều phiên bản Silverlight trong cùng một trang, nhưng đó thực sự là câu hỏi thiết kế kiến ​​trúc mà tôi không thể trả lời.

Hy vọng điều này sẽ hữu ích!

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