我正在研究使用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