32

我正在使用 KO 构建一个 SPA(单页应用程序)。该应用程序看起来像一本书,用户可以翻页。

问题是每次页面加载时,页面都会“闪烁”并且用户会看到页面的无样式版本。我猜这是因为很多样式都依赖于 ko 绑定,所以直到 ko 完成它“神奇”,用户才能看到无样式的代码。

是否可以判断 KO 何时完成所有绑定,然后才显示页面?

我已经设法通过在加载视图之前设置超时来部分解决它,但这当然不是一个好的解决方案。

4

2 回答 2

56

是的,实际上这很容易。应用于display:none顶层div(或 w/e 容器),并且data-bind="visible: true". 这将导致页面被隐藏,直到淘汰赛通过绑定取消隐藏它(这显然在完全加载之前不会发生)。

由于您使用的是不可观察的值,因此 Knockout 甚至不会费心再次重新检查它。初始绑定后不应该存在性能问题。

于 2013-01-29T17:30:27.140 回答
4

我认为以前使用模板可以更好地回答这个问题。

在构建淘汰赛 js 绑定时隐藏屏幕的最佳方法是什么?

于 2013-11-01T19:27:36.377 回答