JavaScript의 공유 근로자와 웹 직원은 모두 멀티 스레딩을 허용하지만 범위와 사용량은 다릅니다. 웹 작업자는 생성 된 탭의 범위로 제한됩니다. 다른 탭이나 창과 통신 할 수 없습니다. 반면에 공유 작업자는 여러 스크립트에서 액세스 할 수 있습니다. 심지어 동일한 도메인에있는 한 다른 탭, 창 또는 iframes에서 실행되는 스크립트조차도 액세스 할 수 있습니다. 이로 인해 다른 브라우저 컨텍스트 간의 데이터 공유 및 커뮤니케이션이 필요한 작업에 이상적인 공유 작업자가 이상적입니다.
JavaScript에서 공유 작업자를 만드는 방법JavaScript에서 공유 작업자를 만드는 방법은 공유 작업자 대상을 인스턴스화하는 것과 관련이 있습니다. 간단한 예는 다음과 같습니다.
var mysharedworker = new sharedworker ( 'worker.js');이 예에서 'worker.js'는 공유 작업자가 실행하는 스크립트입니다. 스크립트는 동일한 원인 정책 제한으로 인해 공유 작업자를 생성하는 스크립트와 동일한 도메인에 있어야한다는 점에 유의해야합니다.
공유 작업자와 어떻게 의사 소통 할 수 있습니까?공유 작업자와의 커뮤니케이션은 사후 관리 방법과 onmessage 이벤트 핸들러를 사용하여 수행됩니다. PostMessage 메소드는 공유 작업자에게 메시지를 보내는 데 사용되며 OnMessage 이벤트 처리기는 메시지를받는 데 사용됩니다. 예는 다음과 같습니다.
// 공유 작업자에게 메시지를 보내는 // 공유 작업자로부터 메시지를받는 console.log ( '오류가 발생했습니다. xmlhttprequest 객체에 액세스 할 수 있으며 서버에 비동기 요청을 할 수 있습니다. 이를 통해 공유 작업자는 기본 스레드를 차단하지 않고 서버에서 데이터를 가져올 수 있으며 웹 애플리케이션의 성능을 향상시킬 수 있습니다.
mysharedworker.onmessage = function (
공유 작업자가 다른 브라우저 탭간에 데이터를 공유 할 수 있습니까?
예, 공유 작업자의 주요 기능 중 하나는 다른 브라우저 탭, 창 또는 iframes간에 데이터를 공유하는 능력입니다. 동일한 도메인의 모든 스크립트가 동일한 공유 작업자 인스턴스에 액세스 할 수 있기 때문에 가능합니다. 이로 인해 공동 작업자는 협업 편집 앱 또는 멀티 탭 게임과 같은 여러 탭 또는 창에서 실시간 업데이트가 필요한 작업에 이상적입니다.
모든 브라우저에서 지원되는 공유 작업자는 공유 작업자가? 그러나 인터넷 익스플로러에서는 지원되지 않습니다. 내가 사용할 수 있거나 MDN 웹 문서와 같은 웹 사이트에서 최신 브라우저 호환성 정보를 확인하는 것이 항상 좋습니다. 공유 근로자는 실행 중에 발생하는 오류를 잡고 처리하는 데 사용할 수있는 'Onerror'이벤트 핸들러가 있습니다. 예는 다음과 같습니다.
mysharedworker.onerror = function (e) {
공유 작업자는 websockets를 사용할 수 있습니까?
예, 공유 근로자는 웹 소집을 사용할 수 있습니다. 이를 통해 서버와 함께 양방향 통신 채널을 설정할 수 있으므로 투표 할 필요없이 실시간으로 데이터를 보내고 수신 할 수 있습니다.
공유 작업자를 종료하려면 어떻게 공유 작업자 개체에서 '종료'메소드를 호출하여 공유 작업자를 종료 할 수 있습니다. 그러나 현재 작업을 완료했는지 여부에 관계없이 이것은 공유 작업자가 즉시 종료 될 것임을 주목하는 것이 중요합니다. 예는 다음과 같습니다.
mysharedworker.terterminate ();