Xin phép bổ sung 1 ví dụ có thể sử dụng Worker Mình từng gặp case VOIP client chỉ cho phép login 1 tab đồng thời. Vấn đề xảy ra: User login VOIP Tab A => sử dụng bình thường Khi user mở thêm 1 tab mới => Login Tab B để xử lý nghiệp vụ => socket phát hiện đăng nhập 2 nơi => tự động send request logout session ở Tab A. Mình đã giải quyết đưa nghiệp vụ xử lý sang Shared Worker xem nó như 1 Bridge => Tab nào login đầu tiên thì sẽ là Node Master xử lý toàn bộ logic. có event từ socket trả về thì sẽ gửi message đó sang Worker. Worker sẽ gửi message đó sang các port còn lại. Tương tự nếu 1 sự kiện xảy ra ở Tab B,C => sẽ gửi message cho worker để worker gửi lại cho Tab A gửi lên socket. Nếu Tab A bị đóng thì sẽ chuyển cho Tab tiếp theo thực hiện login và làm Node Master. sau này nhiều kinh nghiệm hơn thì nghĩ thêm dùng Broadcast Channel, đưa socket qua cho Worker xử lý nhưng chưa có thời gian nghiên cứu.
Hình như anh bị nhầm khái niệm hay sao ý ạ. Background thread processing là "Web worker", chuyên để xử lý CPU intensive hoặc heavy computational tasks. Còn "Service worker" mục đích là tăng trải nghiệm người dùng bằng cách xử lý các vấn đề lq tới caching network resource hay offline support, nó khác với web worker anh ạ.
Cảm ơn anh vì video, nhưng cái anh demo là web worker, còn service worker là một khái niệm khác ạ. 2 khái niệm này dễ nhầm lẫn nhưng là khái niệm khác nhau hoàn toàn đấy ạ
Cảm ơn a vì video hữu ích. Nhưng e thấy web worker chủ yếu giải quyết vấn đề xử lý đồng thời cho app. Chứ CPU thì vẫn vậy thôi, ko thể biến 1 task nặng thành nhẹ được 😊. Hay cái monitor của browser chỉ hiện CPU đang dùng cho main thread thôi nhỉ?
Xin phép bổ sung 1 ví dụ có thể sử dụng Worker
Mình từng gặp case VOIP client chỉ cho phép login 1 tab đồng thời.
Vấn đề xảy ra:
User login VOIP Tab A => sử dụng bình thường
Khi user mở thêm 1 tab mới => Login Tab B để xử lý nghiệp vụ => socket phát hiện đăng nhập 2 nơi => tự động send request logout session ở Tab A.
Mình đã giải quyết đưa nghiệp vụ xử lý sang Shared Worker xem nó như 1 Bridge => Tab nào login đầu tiên thì sẽ là Node Master xử lý toàn bộ logic. có event từ socket trả về thì sẽ gửi message đó sang Worker. Worker sẽ gửi message đó sang các port còn lại.
Tương tự nếu 1 sự kiện xảy ra ở Tab B,C => sẽ gửi message cho worker để worker gửi lại cho Tab A gửi lên socket.
Nếu Tab A bị đóng thì sẽ chuyển cho Tab tiếp theo thực hiện login và làm Node Master.
sau này nhiều kinh nghiệm hơn thì nghĩ thêm dùng Broadcast Channel, đưa socket qua cho Worker xử lý nhưng chưa có thời gian nghiên cứu.
Hình như anh bị nhầm khái niệm hay sao ý ạ.
Background thread processing là "Web worker", chuyên để xử lý CPU intensive hoặc heavy computational tasks.
Còn "Service worker" mục đích là tăng trải nghiệm người dùng bằng cách xử lý các vấn đề lq tới caching network resource hay offline support, nó khác với web worker anh ạ.
Cảm ơn anh vì video, nhưng cái anh demo là web worker, còn service worker là một khái niệm khác ạ. 2 khái niệm này dễ nhầm lẫn nhưng là khái niệm khác nhau hoàn toàn đấy ạ
Sư phụ, em áp dụng worker này vào ReactJS fetch data cải thiện được Performance lên rất nhiều cảm ơn những chia sẽ của thầy. :))
Giúp bạn là niềm vui nhân lên
tuyệt vời anh ơi, đúng cái em đang tìm kiếm
E cũng mới add sw vào web 😂. Thật trùng hợp thanks anh đã ra video
Cảm ơn anh
Cảm ơn a vì video hữu ích. Nhưng e thấy web worker chủ yếu giải quyết vấn đề xử lý đồng thời cho app. Chứ CPU thì vẫn vậy thôi, ko thể biến 1 task nặng thành nhẹ được 😊. Hay cái monitor của browser chỉ hiện CPU đang dùng cho main thread thôi nhỉ?
Mình bật tab "Performance monitor" lên như thế nào vậy anh? Có phải nó là extension của chrome
Bạn bật F12 lên, sau đó nhấn ESC sẽ hiện tab Console drawer, click vào dấu ba chấm ở bên trái chọn Performance monitor
@@tranquangkhuong Thanks bạn! Mình bật lên được rồi, giờ mới biết đến tab này