不知道是否可能,因为我在网上找不到任何东西。 我有一个 KO 模板,大约有 100 条记录。
在 IE 8 中(由于其 JS 引擎不是最优的),页面加载大约需要 15 秒。 在 Firefox 中,大约需要 6 秒。
我已经确认,在 IE 中,ko.applyBindings
会损失大约 5 秒。
有没有办法异步应用绑定(bind)?也许有一个加载图标,以便用户可以在 KO 处理模板时继续使用该页面。
最佳答案
我也遇到了类似的问题。 setTimeout
是您需要在此处使用的。在我的应用程序中我:
- 初始化一个空的(或相当空的)viewModel
- 应用绑定(bind)(由于模型上的依赖属性指示所有数据是否已加载,因此显示“请稍候...”消息)。
- 将数据 block 添加到 viewModel 中(我假设您有一个可观察数组,其中包含大部分数据,因此您只需一次将 10 个项目推送到可观察数组中)
这是让我使用 jsFiddle 展示如何在绑定(bind)中使用 setTimeout 的答案:
关于javascript - 如何在单独的 'thread' 中或异步应用模板绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9582680/