2013-07-30 15 views
1

我正在使用Ember.js为我的公司构建一个网站。Ember.js应用程序的极长载入时间

我遇到的问题是页面的初始加载时间大约为10秒。

我无法给你从chrome分析数据,因为我无法让他们失去工作。 然而,当我看到它们时,我注意到有一个叫做“Get”的函数,总共需要大约8.5秒。我意识到这可能只是Ember.Get()的许多用途,但仍然只是初始页面加载。

我不知道这是否正常,但它是非常不愉快的。我能做些什么吗?

感谢,杰森

+0

我想,如果我们不能看到你的代码,我们不能帮助这么多/所有 – intuitivepixel

+0

我知道这不太方便,但它无法显示代码。请问我任何你想知道/可以想到哪些可能有问题 – Jason

回答

3

尝试使用产能释放(ember.js的缩小的版本),它采用了显著更快的得到。

你在渲染一些非常大的列表吗?如果这样的话,使用列表视图。

如果你有很多不会改变的字段被绑定,请修改它们以解除绑定。

{{unbound someField}} 

如果你有其中模板花了很长时间,但你不知道它是一个有些怪异的问题,你可以添加一些时间戳记录到你的模板开始追查罪魁祸首。在最后,我匆匆做了一个快速帮手。在你的模板中,你可以像这样使用它。它会打印出一个时间戳,在通过该数据点。

{{logTime this}} 
{{logTime name}} 



Ember.Handlebars.helper('logTime', function(someField){ 
    var d = new Date, 
    timestamp = d.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1") + "." + d.getMilliseconds(); 
    console.log(timestamp + " - " + text); 
    return ""; 
}); 
+0

感谢您的优化技巧,我会尽量在明天的工作中使用缩小版本。而对于我的大列表,我正在使用ember-table。但是当应用程序加载表时,这些表是空的。所以这不是一个因素。所以,让我困扰的是,当我的应用程序第一次加载时,我的绑定和数据非常少(只是一些空的视图 - 所有数据在我订阅后填充),并且其加载速度仍然很慢。 – Jason

+0

如果您观看网络选项卡当它正在加载时,它是否能够更深入地了解需要花费很长时间才能加载的内容?这有点令人困惑,因为我们约束了200多个领域,可能有7个网点和10多个视图在一秒之内。 – Kingpin2k

+0

我应该提到,我在谈论chrome开发工具中的网络选项卡。你在使用chrome/ie/ff吗? – Kingpin2k