2

我们使用 EmberJS(版本 1.0.0-rc5)创建了一个 Web 应用程序。我们注意到 Chrome 的出色性能,不幸的是我们必须支持 Internet Explorer 7 作为我们的主要平台。

我们注意到在 IE7 上的性能很糟糕。在调查了这个问题之后,归结为模板的渲染(尽管路由也非常慢)。我们不知道这是由于我们构建应用程序的方式有误,还是因为 Ember 的问题。

我创建了一个小型示例应用程序来重现该问题。您可以在http://manoswerts.be/playground/ember-performance找到它。它渲染了一棵类似于我们在应用程序中所做的树。在 Chrome 中运行它时,结果会立即显示。在 IE7 中,渲染需要 30 秒到一分钟。在 IE8 中它“只”需要 7 秒。

有人熟悉这个吗?这个问题有解决方案吗?

任何帮助是极大的赞赏。

4

2 回答 2

1

尝试添加以下内容以获取有关花费这么长时间的更多详细信息:

Ember.subscribe('render', {
  before: function(name, start, payload){
    return start;
  },
  after: function(name, end, payload, start){
    var duration = Math.round(end - start);
    var template = payload.template || '';
    //console.log(Ember.inspect(payload));
    //var title;
    var view = payload.object.toString();
    console.log('rendered', template, view, 'took', duration, 'ms');
  }
});

这将为您提供每个渲染视图的时间。当我在 Chrome 中运行您的示例时,每个人模板需要大约 2 毫秒来呈现。还有一些与嵌套助手相关的开销以及在这些块中{{each}}呈现“虚拟”视图。{{each}}列表渲染时间总共为 104 毫秒。该总时间将是您点击Show results按钮后写入的最后一个 console.log 行。

因此,根据您所说的,我预计 ie7 和 ie8 的总时间会慢一个数量级。如果是这种情况,想知道它是否均匀分布,或者是否存在渲染速度慢得多的特定视图。

于 2013-06-19T16:04:17.027 回答
0

对于 IE7 和 IE8,我需要相同的时间,大约 4-5 秒。

其他 ember js 示例应用

https://github.com/dgeb/ember_data_example

根本无法使用 IE7。

于 2013-07-08T05:34:07.450 回答