2013-06-28 2 views
0

publish(), handshake(), subscribe() 작업을 UI 스레드 대신 Web Worker() 스레드에서 처리하려고합니다. 그러나 cometd.js가 Web Worker()에서 사용할 수없는 "window"를 사용하기 때문에 "importScripts ('cometd.js')"로 가져 오기를 시도 할 때 cometd.js를로드 할 수 없으므로 성공하지 못했습니다. 아무에게도이 일을시키지 않았습니까?웹 작업자에서 cometd javascript를 만든 사람이 있습니까?

답변

1

CometD 콜백은 대부분의 응용 프로그램에서 DOM을 수정해야하므로 UI ​​스레드에서 실행하는 것이 매우 편리합니다.

또한 CometD 내부 작업은 완전히 비동기식이므로 UI ​​스레드를 차단하지 않습니다.

따라서 CometD에서 WebWorkers를 사용할 필요가 없습니다. CometD 구현이 복잡해지며 응용 프로그램이 될 가능성이 큽니다.

질문에 답하기 위해 WebWorkers에서 CometD 코드를 실행하는 옵션이 고려되었지만 위의 이유로 불필요하다고 판단되어 결국 구현되지 않았습니다.

+0

다른 한편으로 공유 작업자에서 긴 폴링을 실행할 수있는 기회가 있으면 탭간에이 연결을 공유 할 수 있습니다. – shabunc

+0

브라우저 호환성은 좋지 않습니다. http://caniuse.com/#search=sharedworker – sbordet

관련 문제