Optimization foreach大选择减慢knockoutjs数据绑定

Optimization foreach大选择减慢knockoutjs数据绑定,optimization,knockout.js,Optimization,Knockout.js,我的问题 我有一个表,它加载了相同的select,对于检索到的每个数据项都有数百个选项。我检索select的数据,并在数据绑定之前将其存储在JavaScript变量中。问题在于,由于选项太多,这些选项需要10秒以上的时间来填充包含200多个项目的数据集 我做了什么来确定这是问题所在 我发现通过删除选择,数据绑定运行得非常快,因此我确信这是我的问题 我的问题 <table id="reportList"> <tbody data-bind='forea

我的问题

我有一个表,它加载了相同的select,对于检索到的每个数据项都有数百个选项。我检索select的数据,并在数据绑定之前将其存储在JavaScript变量中。问题在于,由于选项太多,这些选项需要10秒以上的时间来填充包含200多个项目的数据集

我做了什么来确定这是问题所在

我发现通过删除选择,数据绑定运行得非常快,因此我确信这是我的问题

我的问题

<table id="reportList">
    <tbody data-bind='foreach: reportList'>
       <tr>
          <td>
              <select class="itemSelect" data-bind="options: $root.selectItemIDOptions,
                                                    value:ItemID, optionsValue: 'ItemID',
                                                    optionsText: 'SupplierItemID',
                                                    optionsCaption: 'Select Item'"  />

          </td>
          <td data-bind="text: Description"></td>
       </tr>
我还能做些什么来加快这个过程

我的实施

<table id="reportList">
    <tbody data-bind='foreach: reportList'>
       <tr>
          <td>
              <select class="itemSelect" data-bind="options: $root.selectItemIDOptions,
                                                    value:ItemID, optionsValue: 'ItemID',
                                                    optionsText: 'SupplierItemID',
                                                    optionsCaption: 'Select Item'"  />

          </td>
          <td data-bind="text: Description"></td>
       </tr>

我的建议是不要尝试修复或调试大型数据集的敲除,而是重构您发送的数据

如果您在第一次数据调用中为每条记录获取10个字段(而不是100个),然后为用户提供一个“获取详细信息”链接,以便逐行检索其他90个字段,该怎么办

这将非常快地加载原始列表,随后每次调用更多详细信息也将非常快。

类似问题如下:
function ReportRow(ItemID, Description) {

  var self = this;
  self.ItemID = ko.observable(ItemID);
  self.Description = ko.observable(Description);
}