0

我已经使用 knockout.js 编写了一个应用程序,并且我也想以批处理模式运行该应用程序(例如使用 node.js)。

这是一个模拟应用程序,因此交互式可视化版本绑定到 html 前端,但另外我想以批处理模式运行模拟并生成大量数据用于统计分析,所以在该模式下我想要所有的 ko代码消失,因为我不需要它并且不想产生性能开销。

可视化示例:

function Queue() {
  var self = this; 
  self.items = ko.observableArray();
  self.rate = ko.observable(5);
  ...
}

...
queue.rate(7);

在批处理模式下相同:

function Queue() {
  var self = this;
  self.items = [];
  self.rate = 5;
}

...
queue.rate = 5;

是否有捷径可寻?

我正在考虑为 ko 创建一个存根,以删除与订阅相关的逻辑,但也许有更简单的方法?

4

1 回答 1

1

您当然可以使用ko.toJS(myObject)来获得对象的“干净”版本,但是您仍然会产生一些开销来创建最终只是展开以获得干净对象的可观察对象。

正如您所说,我的想法是为 ko 创建一个存根,如果您的目标是在两者之间共享代码,它将简单地返回传递给它的值。

于 2012-07-20T12:42:04.043 回答