具有数千条记录的可观察数组

时间:2014-01-29 21:25:31

标签: html5 knockout.js ko.observablearray

 <tbody data-bind='foreach: $root.icdCodes'>
        <tr>
            <td>
                <input type="text" list="icdcodes" data-bind="value: DiagnosisCd, event: {focusout: $root.dxCodeLostFocus }">
                <datalist id="icdcodes" data-bind="foreach: $root.icdCodesDropdown">
                <option data-bind="text: $data.DiagnosisCd">

                </option>
                </datalist>   

            </td>

        </tr>
    </tbody>

vm.dxCodeLostFocus = function () {
   vm.icdCodes.push({ ID: '', DiagnosisCd: '' });
};

我在UI中动态添加了一个html5 datalist控件。可观察数组icdCodesDropdown包含超过10,000条记录。每次我选中与datalist关联的输入文本控件时,需要10秒才能添加另一个输入控件。

可以做些什么来加快响应速度吗?

2 个答案:

答案 0 :(得分:0)

看看https://github.com/mbest/knockout-repeat 我们将它用于大型集合而不是foreach。

答案 1 :(得分:0)

以下链接帮助我解决了这个问题。 我不是一次性填充数据列表,而是在用户在输入控件中输入内容时动态填充它。

http://www.raymondcamden.com/index.cfm/2012/6/14/Example-of-a-dynamic-HTML5-datalist-control