Tôi đang tìm kiếm bối cảnh trong thế giới thực để sử dụng API Công nhân web .
Tôi đang tìm kiếm bối cảnh trong thế giới thực để sử dụng API Công nhân web .
Câu trả lời:
John Resig (danh tiếng của jQuery) có một loạt các ví dụ thú vị về việc sử dụng các nhân viên web ở đây - trò chơi, đồ họa, tiền điện tử.
Một cách sử dụng khác là Web I / O - nói cách khác, bỏ phiếu URL trong nền. Bằng cách đó, bạn không chặn UI chờ kết quả bỏ phiếu.
Một cách sử dụng thực tế khác: trong Bespin, họ đang sử dụng Công nhân web để thực hiện tô sáng cú pháp mà bạn không muốn chặn chỉnh sửa mã của mình trong khi bạn đang sử dụng ứng dụng.
Từ Mozilla : Một cách nhân viên hữu ích là cho phép mã của bạn thực hiện các phép tính chuyên sâu của bộ xử lý mà không chặn luồng giao diện người dùng.
Ví dụ thực tế, hãy nghĩ về một ứng dụng có một bảng lớn #s (đây là thế giới thực, BTW - được lấy từ một ứng dụng tôi đã lập trình ~ 2 năm trước). Bạn có thể thay đổi một # trong một bảng thông qua trường đầu vào và một loạt các số khác trong các cột khác nhau được tính lại trong một quy trình khá chuyên sâu.
Quy trình công việc cũ là: Thay đổi #. Đi lấy cà phê trong khi JavaScript vượt qua các thay đổi đối với các số khác và trang web không phản hồi trong 3 phút - sau khi tôi tối ưu hóa nó thành địa ngục và quay lại. Quay lại với cà phê. Thay đổi # thứ hai. Lặp lại nhiều lần. Nhấp vào nút TIẾT KIỆM.
Quy trình làm việc mới với các công nhân có thể là: Thay đổi #. Nhận thông báo trạng thái rằng một cái gì đó đang được tính toán lại nhưng bạn có thể thay đổi các # khác. Thay đổi thêm #s. Khi hoàn tất thay đổi, hãy đợi cho đến khi trạng thái thay đổi thành "tất cả các tính toán hoàn tất, bây giờ bạn có thể xem lại #s cuối cùng và lưu".
Tôi đã sử dụng chúng để gửi lượng dữ liệu lớn hơn từ trình duyệt đến máy chủ. Rõ ràng, bạn có thể thực hiện việc này với các cuộc gọi AJAX thông thường, nhưng nếu điều này chiếm một trong các kết nối quý giá trên mỗi tên máy chủ. Ngoài ra, nếu người dùng thực hiện chuyển đổi trang trong quá trình này (ví dụ: nhấp vào liên kết), các đối tượng JavaScript của bạn từ trang trước sẽ biến mất và bạn không thể xử lý các cuộc gọi lại. Khi một nhân viên web được sử dụng, hoạt động này xảy ra ngoài băng tần, vì vậy bạn có một đảm bảo tốt hơn rằng nó sẽ hoàn thành.
Trường hợp sử dụng khác:
Nén / khử các tệp trong nền, nếu bạn có nhiều hình ảnh và các tệp phương tiện khác được trao đổi từ máy chủ ở định dạng nén.
<canvas>
), bạn có thể lấy dữ liệu hình ảnh ở định dạng nén (ví dụ: png). Quan điểm của tôi không phải là không bao giờ thích hợp để nén trong JS; Quan điểm của tôi là trong hầu hết các trường hợp , nó không phải , và trong hầu hết các trường hợp - đặc biệt là xử lý hình ảnh, đó là điều mà câu trả lời này nói về - có một cách khác tốt hơn để tự nén.