淘汰'闪烁'问题

时间:2013-01-29 12:34:11

标签: javascript knockout.js singlepage single-page-application

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

问题在于,每次加载页面时,页面“闪烁”并且用户看到页面的无样式版本的时间很短。我想这是由于很多样式依赖于ko绑定这一事实所以直到ko完成它“魔术”,用户才能看到无格式代码。

是否有可能告诉KO何时完成所有绑定并且只显示页面?

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

2 个答案:

答案 0 :(得分:54)

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

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

答案 1 :(得分:4)

我认为之前使用模板可以更好地解决这个问题。

What is the best way to hide the screen while knockout js bindings are being built?