32

KO を使用して SPA (シングル ページ アプリケーション) を構築しています。アプリケーションは本のように見え、ユーザーはページをめくることができます。

問題は、ページが読み込まれるたびに、ページが「ちらつき」、ユーザーがページのスタイル設定されていないバージョンを見る短い瞬間があることです。これは、スタイリングの多くが ko バインディングに依存しているため、ko が「マジック」で終了するまで、ユーザーはスタイリングされていないコードを垣間見ることができるという事実が原因であると思います。

KO がすべてのバインドを終了したときに、そのページを表示することは可能ですか?

ビューをロードする前にタイムアウトを設定することで部分的に解決できましたが、もちろんこれは良い解決策ではありません。

4

2 に答える 2

56

はい、実際には非常に簡単です。display:noneトップレベルdiv(またはコンテナ付き)に適用し、 data-bind="visible: true". これにより、ノックアウトがバインドを介して非表示を解除するまで、ページが非表示になります (完全にロードされるまでは明らかに発生しません)。

観察不可能な値を使用しているため、Knockout はこれを再チェックすることさえしません。最初のバインディングの後、パフォーマンスの問題はありません。

于 2013-01-29T17:30:27.140 に答える
4

これは、テンプレートを使用することで以前によく答えられたと思います。

ノックアウトjsバインディングの構築中に画面を非表示にする最良の方法は何ですか?

于 2013-11-01T19:27:36.377 に答える