余烬应用程序性能

Ember Application performance

本文关键字:性能 应用程序 余烬      更新时间:2023-09-26
这可能是

非常菜鸟,但我无法怀疑,在余烬中,我们使用 javascript 的车把模板编写所有 HTML,所以如果我有 n 个不同的页面,那么我会说 n 个车把模板,每个模板也是一个对象(我使用构建工具,所以我有这个哈希Ember.TEMPLATES来存储我所有的模板)

更多模板 => 哈希Ember.TEMPLATES中的更多属性 => 我的应用程序.js 大小会更大,也有很多内存用于保存该哈希

第一个疑问是,由于我们一次交付了整个javascript,因此会增加应用程序的加载时间,优点是Web应用程序交互一旦加载就会快得多。

此外,由于使用大量内存来保存哈希,因此 Web 应用程序将使用大量资源。

首先,我的假设有什么问题吗?如果不是,那么这是我们为拥有许多交互式Web应用程序而付出的代价吗?

我认为这完全取决于您加载其他资源的方式。是的,JavaScript 的加载时间比未在客户端中构建的 Web 应用程序的 JavaScript 要长。

但请记住,此加载时间仍然明显小于"正常"应用程序的"总"加载时间,其中用户访问的每个页面都会创建另一个HTTP请求,因此必须一遍又一遍地重新加载其JavaScript。

此外,由于 Ember 是异步的,因此您可以设计应用程序,使其最初加载较少的其他外部资源(图像、数据等),并使用 DS.Store 机制拉入这些资源,因此您的初始加载时间只能是 JS/HTML/CSS,其他一切都可以稍后出现(不再需要等待服务器上昂贵的数据库查询)。

所以是的,Ember 确实等于更多的初始 JavaScript 加载时间,但它为您提供了降低应用程序总加载时间的工具。

至于浏览器资源,Ember非常高效,但使用更多的浏览器内存只是我们为在客户端计算机上而不是在我们自己的服务器上进行计算而付出的代价。这个想法是,大多数现代浏览器和机器都足以处理这种额外的资源需求,因此权衡变得值得。

编辑:

可能是你的应用程序太大了,

浏览器无法处理,无论你做什么(尽管你的应用程序必须非常庞大才能出现这种情况)。在这种情况下,解决这个问题的一种方法是将其分解为多个 Ember 应用程序,这将最大限度地减少用户在 Ember 应用程序之间来回切换。也许是处理登录、营销、查看内容等的"公共"应用程序,以及处理后端帐户页面的"私人"应用程序。