웹 작업자가 할 수없는 서비스 작업자는 무엇을 할 수 있습니까?
웹 작업자가 할 수없는 서비스 작업자는 무엇을 할 수 있습니까? 혹은 그 반대로도?
웹 워커는 서비스 워커 기능의 하위 집합 인 것 같습니다. 이 올바른지?
용도에 큰 차이가 있습니다.
웹 워커
웹 워커는 웹 콘텐츠가 백그라운드 스레드에서 스크립트를 실행하는 간단한 수단을 제공합니다. 작업자 스레드는 사용자 인터페이스를 방해하지 않고 작업을 수행 할 수 있습니다. 또한 XMLHttpRequest를 사용하여 I / O를 수행 할 수 있습니다 (responseXML 및 채널 속성은 항상 null 임). 생성 된 작업자는 해당 코드에서 지정한 이벤트 핸들러에 메시지를 게시하여 생성 한 JavaScript 코드로 메시지를 보낼 수 있습니다 (반대의 경우도 마찬가지).
서비스 워커
서비스 워커는 기본적으로 웹 애플리케이션과 브라우저 및 네트워크 (사용 가능한 경우) 사이에있는 프록시 서버 역할을합니다. 이는 무엇보다도 효과적인 오프라인 경험을 생성하고, 네트워크 요청을 가로 채고, 네트워크가 사용 가능하고 업데이트 된 자산이 서버에 있는지 여부에 따라 적절한 조치를 취할 수 있도록하기위한 것입니다. 또한 푸시 알림 및 백그라운드 동기화 API에 대한 액세스를 허용합니다.
따라서 웹 워커는 사용자 인터페이스를 멈추지 않고 값 비싼 스크립트를 실행하는 데 편리하며, 서비스 워커는 네트워크 요청의 응답을 수정하는 데 유용합니다 (예 : 오프라인 앱을 빌드 할 때).
Buksy의 대답 은 맞지만 제 생각에는 "웹 작업자가 할 수없는 서비스 작업자는 무엇을 할 수 있습니까? 아니면 그 반대로 할 수 있습니까?"라는 원래 질문에 대답하지 않습니다.
수명주기와 보유 할 수있는 오리진 당 인스턴스 수에는 근본적인 차이가 있습니다. 요컨대 :
| Web Workers | Service Workers |
|--------------|--------------|------------------|
| Instances | Many per tab | One for all tabs |
| Lifespan | Same as tab | Independent |
| Intended use | Parallelism | Offline support |
Buksy의 대답은 기본적으로 테이블의 마지막 행입니다. 출처 : Nolan Lawson의 Demystifying Web Workers and Service Workers 에서 슬라이드 35 부터이 표를 가져 왔습니다 .
특히 다음은 웹 워커를 생성하고 종료하는 방법입니다.
서비스 작업자는 자신의 수명주기를 가지고 있으며, 이는 "가장 복잡한 부분"입니다.
따라서 수명주기는 두 가지의 근본적인 차이점 중 하나입니다 (의도 된 사용의 결과).
브라우저 지원에는 큰 차이가있었습니다. iOS 용 Safari에서는 11.3 (2018 년 3 월 29 일)까지 서비스 워커를 전혀 사용할 수 없었습니다. 서비스 워커를 사용할 수 있나요?를 참조하세요 . 반대로 웹 작업자는 2012 년에 이미 훨씬 더 나은 브라우저 지원을 받았습니다. 웹 작업자를 사용할 수 있습니까?
브라우저 간 API 지원에는 미묘한 차이가 있습니다. HTML5 작업자 테스트 (Nolan Lawson도 제공)를 참조하세요 . 특정 브라우저에서 한 종류의 작업자는 특정 API 호출을 지원하지만 다른 작업자는 지원하지 않을 수 있습니다. 해당 페이지를 방문하여 자신의 브라우저를 테스트하십시오!
참고 URL : https://stackoverflow.com/questions/38632723/what-can-service-workers-do-that-web-workers-cannot
'Development Tip' 카테고리의 다른 글
React.js — 속성 객체를 자식 컴포넌트에 전달하는 방법은 무엇입니까? (0) | 2020.10.31 |
---|---|
Django 1.8 : 기존 스키마에 대한 초기 마이그레이션 만들기 (0) | 2020.10.31 |
DateTime 개체에서만 날짜 또는 시간 가져 오기 (0) | 2020.10.31 |
ASP.Net MVC에서 전역 필터를 선택적으로 비활성화하는 방법 (0) | 2020.10.31 |
Sort 및 Pageable 모두에서 Spring 데이터 JPA를 사용하여 데이터를 즉시 쿼리하는 방법은 무엇입니까? (0) | 2020.10.31 |