我正在使用 knockout.js 来呈现我的视图,我正在从服务器获取数据并像这样绑定..
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel, $("#macro-wrapper")[0]);
我的观点......我已经修剪了一些......但绑定是一样的......
<div data-bind="foreach: Data">
<h3>
<a href="#" data-bind="text: Site.Name"></a>
</h3>
<div id="">
<div data-bind="foreach: Comments">
<div class="">
<div class="" data-bind="click: $root.showContent">
<a ></a>
</div>
<span>
<a data-bind="attr: { 'href': Url }, text: SomeText"></a>
</span>
<span class="">
<span class="" data-bind="text: ADate"></span>
</span>
</div>
</div>
</div>
数据包含一个对象数组,每个对象中都有另一个数组……大约有 500 个项目需要渲染。
虽然我一直在测试,但我没有遇到任何问题,但是在部署时,我不知道它是否是慢速电脑,但他们得到了“这个脚本正在执行慢 - 停止?” 信息。如果您单击“否”几次,它将呈现。
在淘汰赛中处理大数据集的技术是什么?理想情况下,我希望渲染异步完成,让用户在忙于工作时继续他们的事情......
这些属性实际上不需要是可观察的——这是一次渲染……什么都不会改变。为了方便起见,我使用了映射 API。
更新:好的,所以我进行了更改,不再使用映射 api - 页面正在加载,但仍然很慢......有什么想法吗?改变:var viewModel = data;