gpt4 book ai didi

knockout.js - knockout 映射性能问题

转载 作者:行者123 更新时间:2023-12-02 05:27:32 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Knockout.js incredibly slow under semi-large datasets

我的模型中有以下事件,如果我只有少量记录,它会正常工作,但如果我有几十条记录,IE 会提示我的脚本运行太慢。

    self.getTrades = function () {

$.ajax({

type: "GET",
cache: false,
url: "/_vti_bin/DBOrderService/DBOrderService.svc/GetTradesByDateSource?format=json&traddate=" + self.selectedDate() + "&source=" + self.selectedSource(),
success: function (data, textStatus, jqXHR) {
if (data.requeststatus.code === 1) {
var statusId = SP.UI.Status.addStatus(data.requeststatus.message);
SP.UI.Status.setStatusPriColor(statusId, 'red');
return;
}
debugger;
ko.mapping.fromJS({ trades: data.trades }, mappings, self); //too slow, events are firing as items are added
self.selectedTrade(null);
},
error: ajaxError
});
};

我认为这是因为映射会在添加时为每一行触发更改通知,所以我想将新行“批量”复制到我的模型中。

我试过了

 var temptrades = ko.mapping.fromJS(data.trades, mappings);
self.trades=temptrades();

self.trades(temtrades);

self.trades(temptrades();

但它们都破坏了我的模型。将 ko.mapping 创建的可观察数组一次性全部复制到我的模型中的正确方法是什么。 ko.mapping 上是否有选项可以防止触发事件直到结束?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com