使一个外部脚本对qooxdoo Object的所有成员可用



所以我一直在使用d3库的qooxdoo框架中制作web应用程序。目前,每个需要使用d3库的函数都是这样工作的:

myFunction : function() {
    var req = new qx.bom.request.Script();
    req.onload = this.myActualFunction(); //calls function when script loads
    req.open("GET","http://d3js.org/d3.v3.js" );
    req.send();
}

为许多不同的函数调用脚本加载器似乎很冗长*。我们可以,并且最终可能会,从本地目录切换到使用d3。尽管如此,似乎有很多时候,您希望使用脚本加载器使脚本可用于(例如)对象的每个成员函数。有什么办法能让我做到吗?如果我像传递变量一样传递脚本加载器,这是否意味着在作用域中拥有它的每个函数都可以访问库?

手册似乎对这个主题没有多大帮助。

*我认为qooxdoo安排缓存脚本-它似乎非常擅长这些类型的优化,尽管我不知道脚本加载器在编译版本中是如何处理的。

处理外部库的最佳方法是创建一个Qooxdoo包装器,它将成为依赖管理过程中的一等公民。Qooxdoo在内部使用了这种方法,例如Sizzle、Mustache等。幸运的是,D3已经有贡献了。尽管您可以毫不费力地制作自己的包装器。

您也可以使用add-script将库"链接"到文档,但我认为这种方式大多是不利的。

相关内容

最新更新