在我们的 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 请求。