我正在使用Ember.js和Handlebars.js的應用程序。我注意到,頁面第一次加載時可能會有一些延遲顯示模板。這是有道理的,因爲JavaScript必須創建HTML。第一次加載頁面時看起來像是一個空白頁面已經加載,然後突然出現一切。老實說,這是一個我可以忍受的問題,但對我來說似乎仍然有點尷尬。我可能只是過分分析一些東西,但是有其他人注意到了這一點,並且有人建議如何讓頁面加載看起來更「自然」嗎?模板加載延遲與Ember.js
4
A
回答
4
正如我上面的評論,你可以顯示一個微調,而網頁顯示,數據加載等。作爲一個例子,下面是一個混合其中顯示了一個微調,直到查看已呈現:
App.ShowSpinnerWhileRendering = Ember.Mixin.create({
layout: Ember.Handlebars.compile('<div class="loading">{{ yield }}</div>'),
classNameBindings: ['isLoaded'],
didInsertElement: function() {
this.set('isLoaded', true);
this._super();
}
});
在要等待數據負載的情況下(假設你使用路由器用於顯示視圖):
App.ShowSpinnerWhileRendering = Ember.Mixin.create({
layout: Ember.Handlebars.compile('<div class="loading">{{ yield }}</div>'),
classNameBindings: ['isLoaded'],
isLoaded: function() {
return this.get('isInserted') && this.get('controller.isLoaded');
}.property('isInserted', 'controller.isLoaded'),
didInsertElement: function() {
this.set('inserted', true);
this._super();
}
});
它混入你的觀點:
App.ApplicationView = Ember.View.extend(App.ShowSpinnerWhileRendering, {
// ...
});
然後定義一些CSS規則來顯示正在加載的旋轉(或某事),具有showSpinner
類的元素,和隱藏它時,它也有一個isLoaded
類:
.loading{
background-image: url("spinner.png")
background-color: #DFDFDF
}
.is-loaded .loading {
/* back to default styling, e.g. */
background-image: none
background-color: white
}
+0
我不能得到這個工作+看了新的文檔...什麼改變了什麼想法? –
+0
我們實際上嘗試過實施這個無濟於事。我們目前正在研究:http://discuss.emberjs.com/t/found-a-fun-hidden-loading-feature/1677(認爲它可能有助於未來的遊客) – MelArlo
相關問題
- 1. 在Ember.js中延遲加載?
- 2. 延遲加載樣板模塊
- 3. AngularJS:延遲加載一個模板
- 4. 與延遲加載
- 5. 與延遲加載模塊的路線
- 6. 模式的延遲加載與Python
- 7. Angular2延遲加載與共享模塊
- 8. 延遲加載AngularJS模塊與RequireJS
- 9. 延遲加載延遲
- 10. 延遲加載模型
- 11. 延遲加載與淡入
- 12. 加載動畫與延遲
- 13. 動態與延遲加載
- 14. 延遲加載與RequestFactory
- 15. 延遲加載主頁,直到所有模板加載
- 16. 延遲加載
- 17. 延遲加載
- 18. 延遲加載
- 19. 延遲加載
- 20. 延遲加載
- 21. 延遲加載
- 22. 延遲加載
- 23. 延遲加載
- 24. 延遲加載
- 25. 延遲加載模板文件內部引導模態
- 26. Angular 2功能模塊延遲加載但不呈現模板
- 27. jQuery:加載時滑動面板延遲
- 28. 的jquery - 延遲加載 - 設置延遲
- 29. 延遲加載Dylibs
- 30. FBProfilePictureView加載延遲
如果您的網頁加載了很多東西,請考慮在頁面加載時顯示加載微調器。看看這個:http://bit.ly/TjeG6z –