Ember アプリで「ページ」が読み込まれていることを視覚的に示すのに問題があります。
gif メソッドとSpin JSの両方を試しました。どちらも非常に遅延が大きく、すべての Ember オブジェクトが読み込まれたときにのみ完全に読み込まれるため、失敗します。この質問と同様の問題。
他の人が公開ビルドで使用している方法は何ですか?
編集:これは、アプリが初めて読み込まれるときです。初期ロードは、何らかの形式の視覚的表示を必要とするのに十分な長さです。
Ember アプリで「ページ」が読み込まれていることを視覚的に示すのに問題があります。
gif メソッドとSpin JSの両方を試しました。どちらも非常に遅延が大きく、すべての Ember オブジェクトが読み込まれたときにのみ完全に読み込まれるため、失敗します。この質問と同様の問題。
他の人が公開ビルドで使用している方法は何ですか?
編集:これは、アプリが初めて読み込まれるときです。初期ロードは、何らかの形式の視覚的表示を必要とするのに十分な長さです。
読み込みインジケータを使用してドキュメントにオーバーレイを追加できます。CSS で追加すると、Ember が初期化される前に読み込まれます。ember が初期化された後、オーバーレイを削除できます。
私がそれをどのように実装するかの例の下に:
HTML:
<html>
<head> ... load dependencies ... </head>
<body class="loading"> ... handlebars templates ... </body>
</html>
CSS:
body.loading:after {
content: '';
background: rgba(255,255,255,.3) url(images/loader.gif) 50% no-repeat;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 10;
}
残り火コード:
App.ApplicationView = Ember.View.extend({
removeLoader: function() {
$('body').removeClass('loading');
}.on('didInsertElement')
});
この方法では、Ember が初期化される前に読み込みインジケータが表示されますが、Ember の初期化が完了するとローダーが削除されます。
これにはjQuery ajax コールバックを使用できます。
$(document).ajaxStart(function(){ console.log("ajax started")})
$(document).ajaxStop(function(){ console.log("ajax stopped")})
これは、すべての ajax リクエストに対して機能します。