我正在研究使用Ruby API編寫的Google Sketchup插件。在這個API中有一個WebDialog class,可以用它來渲染HTML並在插件代碼的WebDialog和Ruby端之間移動數據。我正在使用這個類爲我的插件構建一個UI。Google Sketchup插件的Javascript事件循環/消息泵
異步地將數據從WebDialog發送到Ruby端。由於欠佳的文檔,我最初並沒有意識到這一點,現在我已經進入了我的插件,它開始給我造成一些問題。具體來說:當從WebDialog到Ruby端進行多次連續調用時,只有最後一次調用被執行。所以,我顯然需要設計一些「橋樑」來防止WebDialog到Ruby端的調用丟失 - 我認爲這基本上是一個「事件循環」或「消息泵」系統。
我的問題是,我不知道如何做到這一點。我所希望的是,某人可以爲我提供某種資源,爲我們提供一個框架,說明這樣一個系統應該如何工作 - 需要什麼樣的檢查,他們的執行順序等等。我知道這可能是一個非常複雜的任務,但我只需要一些基本的東西:基本上,當我向Ruby發送請求時,停止Javascript的一種方式,直到獲取我需要的數據並繼續處理任何可能的錯誤出現。
任何幫助將非常感謝!
JavaScript泵後來在SKUI中實現:https://github.com/thomthom/SKUI – thomthom 2014-04-22 14:00:39