2016-05-20 12 views
1

我已经与Angular 1.x合作过,现在开始使用Angular 2.现在我不知所措,看到我们必须添加到index.html中的js脚本的数量才能开始。不是Angular 2对这么多javascript文件的依赖妨碍/影响它的性能?

我的意思是,即使我不包括角(及其组件的)自己的js文件,还有"systemjs""es6-shim""reflect-metadata""rxjs""zone.js"

我不停的听到角2比角1

快2〜3倍我用AngularJS 1.x和也ReactJS并没有在那里我看到了这么多的依赖于其他脚本。

我不明白的是 - 难道所有这些脚本文件都会让浏览器变慢吗?他们不要在浏览器的JS引擎上创建额外的负载吗?

我们是否假设我们只在角2中开发目标浏览器?

请问谁能解释一下?


编辑:

我想明白通过大量的JavaScript文件的性能影响。

你能否拒绝/拒绝Angular 2需要更多JS文件才能开始工作而不是Angular 1的事实?

+0

为什么Downvote?好吧,如果你愿意的话,可以低估,但我仍然想知道答案。所以,downvote与评论plz :) – TruthSeeker

回答

1

的角度团队正在构建工具(部分在RC已经包含)可以解决所有这类东西之前,应用程序交付给浏览器

  • 脚本内联
  • CSS内联
  • CSS重写ViewEncapsulation.Emulated(默认)
  • HTML内联
  • 组件的延迟加载取决于路由配置
  • 通过生成的代码
  • 替换声明绑定...

在发展的角度应用程序必须做出几十到几百的HTTP请求来获取所有资源。构建步骤之后,这些最小化到绝对必要。

2

那么有更多的文件加载可能会增加第一次加载页面,并在开始时的内存消耗(当然不是在那么结束)显然。

但是,一旦你通过了,这几乎与性能无关。

此外,通过使用专门为其目的进行开发和优化的库,角开发人员不必重写他们自己的代码部分,这可能比现有的和广泛使用的代码更少/更优化。

我们来举一个简单的例子:underscorejslodash。通过将它包含到浏览器中,您可能会添加一些时间加载,但通过使用提供的功能,您的代码可能会更快,因为当涉及到那些库的用途时,有很多关于javascript性能的技巧。

这并不是因为你加载了那些库,你会在每个javascript循环中执行完整的代码,对于angularJS2和他的所有库也是如此。

最令人讨厌的事情可能是需要,不仅要学习angularJS2,还需要一些其他组件来获取有关如何正确使用angularJS2进行编码的权利,从而增加学习曲线。

在你展示的文件当中:es6-shim是为了让angularJS2兼容no-es6浏览器,在IE8上使用angularJS 1.x的时候也是这样,这个没有什么新东西。