我正在使用KO构建SPA(单页应用程序)。该应用程序看起来像一本书,用户可以翻页。
问题在于,每次加载页面时,页面“闪烁”并且用户看到页面的无样式版本的时间很短。我想这是由于很多样式依赖于ko绑定这一事实所以直到ko完成它“魔术”,用户才能看到无格式代码。
是否有可能告诉KO何时完成所有绑定并且只显示页面?
我设法通过在加载视图之前设置超时来部分解决它,但当然这不是一个好的解决方案。
答案 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?