2013-04-20 70 views
1

我正在尋找交叉編譯飛鏢腳本JS,運行在網絡工作者。Dart to javascript workers

我的JS腳本應該是這樣的:

myScript.js

postMessage("I\'m working before postMessage(\'ali\')."); 

onmessage = function (oEvent) { 
    postMessage("Hi " + oEvent.data); 
}; 

如何構建我的鏢代碼來做到這一點?

將這兩個函數直接放在我的javascript的頂部,以便能夠在工作人員中運行非常重要。 thx

回答

1

我不確定任何人的嘗試過。所以你應該!

dart.js,啓動Dart虛擬機(如果可用並設置js-interp)的腳本不會很有用,因爲它會訪問很多對象,這些對象在工作中不可用,並且因爲您不不需要啓動虛擬機。

所以我的猜測是,所有你需要做的就是編譯代碼dart2js並直接引用你的工人呼叫app.dart.js:

new Worker("dart_worker.dart.js"); 

然後在dart_worker.dart.js註冊window.onMessage活動並通常撥打window.postMessage

希望如果您不使用不允許的DOM對象,如document,dart2js不會生成在工作中失敗的代碼。

讓我們知道這是否工作!

0

我嘗試這樣做:

dart_worker.dart

void main() { 

    window.onMessage.listen((event) => onData); 

} 

void onData(){ 
    var a = 10 + 25; 
} 

測試worker.html

Chrome的報告,我有一個腳本錯誤我的飛鏢腳本:未捕獲非法證據:命令

我的代碼有什麼問題嗎?