2014-02-25 2 views
4

new Worker()으로 스핀 업하면 웹 작업자로 "그냥 일하도록"설정하고 싶습니다. 그렇게하려면 메시지를 받으려면 self에 이벤트 리스너를 첨부해야합니다.스크립트가 웹 작업자에 포함되었는지 어떻게 확인할 수 있습니까?

importScripts()을 사용하여 다른 개발자의 웹 작업자에 내 스크립트가 포함되어있는 경우 어떻게 제 3 자인지 알 수 있으며 메시지 수신을 위해 자체적으로 이벤트 수신기를 연결해서는 안됩니까?

답변

1

이이 WorkerGlobalScope를 사용하여 같은 시도 할 수 있습니다 :

if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { 
    // code 
} else { 
    // code 
} 

즉, 당신이 노동자에있어 확인 document의 부재를 확인 할 수 있습니다.

는 DOM API를 (노드 객체, 문서 객체, 등)이 규격이 버전의 근로자에 ​​ 사용할 수 없습니다 :

는 또한 specs는 말한다.

+0

사양을 읽은 방법과 지금까지 테스트를 통해 본 것은 포함 된 스크립트에도 자체 참조가 있다는 것입니다. 그렇다면 자체는 항상 스펙 링크 (핵심어 : "global") 당 'WorkerGlobalScope'를 가리키고 있는데, 이것이 제 3 자인지 여부를 결정하는 데 어떻게 도움이되는지 혼란 스럽습니다. – buley

관련 문제