使用大数据时,ember.js的工作速度非常慢

时间:2014-02-19 09:06:28

标签: javascript ember.js event-loop

我需要显示1000行的表格。但是当我将内容传递给控制器​​时,页面在几秒钟内没有响应

以下是我编写的用于显示问题的代码

您可以在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 个答案:

答案 0 :(得分:0)

我知道你的意思,我已经遇到了这个问题,所以试着查看我在stackoverflow发布的解决方案