我已经有了一个相当复杂的应用程序,一个视图模型具有记录列表:可怕的性能对象
app.records = ko.observableArray([])
使用AJAX我抓住一些JSON从服务器将其填充到阵列中:
$.getJSON("/api/records", function(data){
app.records($.map(data, function(item){
r = new Record(item);
return r;
});
});
这对于我的测试数据集中的至少6个项目非常有用。该应用几乎立即加载。但我也有一个创造新的记录按钮,做到这一点:
$.post("/api/records", {}, function(record){
r = new Record(record);
console.log("About to push...");
app.records.push(r);
console.log("Pushed the new record.");
});
第一个日志行瞬间出现,但第二线大约需要8秒出现。评论推动使操作有效地立即。我相信这个问题是由于我有相当多的相当复杂的计算变量引起的;我认为这一推动正在导致它重新计算一切。然而,奇怪的是,在页面加载时添加六个测试项目是即时的。
任何人都可以给我一些提示来调试吗?该应用程序不处于我可以轻松共享代码或构建隔离问题的JSFiddle的状态。我不愿意盲目地评论一下线路,看看是否有什么解决问题,因为这可能需要很长时间。有没有人有任何想法?或者至少是一个总体战略? :)
(我目前使用的2.1候选发布;与淘汰赛2.0出现的问题,以及)