0
我需要顯示1000行的表格。但是,當我通過內容控制,頁面不幾秒ember.js對於大數據非常緩慢
下面內做出迴應是我寫的,顯示問題的代碼
你可以看到在http://emberjs.jsbin.com/qixoruyi/8/edit
工作演示,當我點擊「更改內容「按鈕,頁面在幾秒鐘內沒有響應,此時,計數器不增加,此時此時ember不會將控制權返回給javascript事件循環。 1000行對於餘燼來說太多了?或者我做錯了什麼?
<script type="text/x-handlebars">
<div>counter: {{counter}}</div>
<button {{action "changeContent"}}>change content</button>
<table border="1">
<tbody>
{{#each}}
<tr>
{{#each}}
<td>{{this}}</td>
{{/each}}
</tr>
{{/each}}
</tbody>
</table>
</script>
var newContent = [];
var i,j, t, x=0;
for(i = 0; i < 1000; i++) {
t = [];
for(j=0; j<10; j++) {
t.push("x"+x++);
}
newContent.push(t);
}
App = Ember.Application.create();
App.Router.map(function() {});
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return [];
}
});
App.ApplicationController = Ember.ArrayController.extend({
counter: 0,
init: function() {
var t = this, c = 0;
setInterval(function(){
t.set('counter', c++)
}, 200);
},
actions: {
changeContent: function() {
this.set('content', newContent);
}
},
});
謝謝您的回答!
張貼了順便說一句,是不是有點棘手,爲用戶應對?將無限滾動使用像燼斗篷[1](http://eviltrout.com/2014/01/04/hiding-offscreen-ember.html)[2](https://github.com/eviltrout/ember外殼)是一個更好的選擇? – bcmcfc
爲了在Ember中渲染大型表格,我通常最終使用[ember-table](https://github.com/Addepar/ember-table)。它以非常好的方式處理性能問題和延遲加載等內容。 –
「顯示事物列表」的Emberjs故事目前非常低劣。老實說,我不確定他們如何認真對待這個問題,而不去處理。請注意,1000行不是任何延伸的「大數據」。事實上,Emberjs嚴重的性能問題可能會在100行內遇到。 「Ember Cloaking」項目可能會對你有所幫助,顯然他們正在重構可怕的非高性能模板渲染系統,並且即將重寫,但幾個月來沒有任何更新。 – Purrell