2013-07-26 42 views
0

我的腳本文件夾中有一個Worker.js文件和一個Subworker.js文件。創建一個工作者沒有問題,我可以在調試器中遍歷代碼;但是當我想要該工作人員產生一個子工作人員時,它不會被創建,並且我無法在調試器中逐步完成子工作程序代碼文件。我不明白爲什麼這個工人不能在IE10中產生一個子工作者HTML5

In myPage.htm script block: 
var worker = new Worker("Scripts/Worker.js"); // Succeeds 

In Worker.js script file: 
var subworker = new Worker("Subworker.js"); //without the folder name FAILS 

的IE10開發工具網絡控制檯顯示此:

URL....................Method...Result..Type.......................Received.......Taken......Initiator 
/Scripts/Worker.js.....GET......200.....application/x-javascript...1.00KB..........<1ms......webworker 
/Scripts/Subworker.js..GET......404.....text/html..................2.50KB..........239.29s...webworker 

編輯:找到了答案,404錯誤但仍無法實例化subworker:

  var subworker = new Worker("..Subworker.js"); 

EDIT2:也發現以下技巧導致當前版本的腳本被使用會產生400錯誤:

  var subworker = new Worker("..Subworker.js?version=2.0"); 

回答

0

我在同一條船上。

我的計劃是從另一個doamin或file://協議加載子工,因爲您無法直接從常規js腳本加載一個。我仍然需要對此進行測試,但我知道Workers/SharedWorkers不受正常的跨源限制策略的約束,除了**當您嘗試加載一個(並且希望僅在從window腳本執行此操作時) 。

另一種方法是使用window.postMessage將消息轉發給它在其他window中創建的Worker。

或者,我的具體需要我正在考慮運行一個無頭的瀏覽器本地,一個CDN或localhost「永遠服​​務器」與CORS啓用 - 但這很可能仍然需要window.postMessage()

希望這有助於蒂姆!

如果您找到答案,請回復,呃?

相關問題