作家
登录

9种改善AngularJS性能的方法

作者: 来源: 2017-07-11 08:59:41 阅读 我要评论

AngularJS 是今朝应用异常广泛的 web app 应用框架,跟着它的受迎接程度持续上升 ,等待已久的AngularJS 4.0 出生了。尽管已经做了很多优化,但几乎每个 Angular 专家仍然在处理应用 AngularJS 中出现的各类各样的问题。

今朝,企业应用Web技巧用在他们各自项目上,在线营业是以受到了极大年夜影响。是以,有须要深刻发掘影响企业成长的各类身分。

然则,有可能不精确地应用 AngularJS 办法会影响你的应用法度榜样在市场上的排名,是以 AngularJS 机能优化成为每个AngularJS开辟专家的重要需求。这就是为什愦我们在这个博客中列出了九种进步 AngularJS 机能的办法的原因。

对于应用 Angular 的团队来说, Batarang 是一个不错的开辟对象,它可以削减你在调试上的压力。尽管可能有很多新特点,但它们重要照样来赞助你描述和追踪你的 AngularJS 的机能。此外,它是经由过程监控树来决定哪个范围不被烧毁的,例如,经由过程查看内存应用量是否有增长来决定是否烧毁。

比来,巴西计算机科学家进行了一项查询拜访,他们发明有关引起AngularJS法度榜样员机能问题的原因的有趣事实。对于AngularJS在实际世比赛的机能并没有太多的信息。然则基于查询拜访的研究为此供给了一些证据。

该查询拜访获得下面结不雅:

在对 AngularJS 机能进行了如斯多的评论辩论之后,如今可以看看九种可以改良 AngularJS 机能的办法了。

AngularJS 的机能可以简单地经由过程它的 digest 周期测量。digest 周期可以被作为一个轮回。在这个周期中,Angular 经由过程所有的 $scopes来检查所有变量的改变。如不雅$scope.myVar 是定义在控制器(controller)中并且标记为不雅察,那么 Angular 将会对myVar更新进行监督,这种监督每迭代轮回一次就检查一次。

1.用 Batarang 对象对 Watcher 进行基准测试

2.应用 Native JavaScript 或 Lodash

3.TestingWhiz

Lodash 经由过程简单地重写一些根本逻辑,而不是依附内置的 AngularJS 办法来进步应用法度榜样机能。如不雅你的应用法度榜样中没有包含 Lodash,那么你可能须要从新编写 Native JavaScript 中的所有代码了。

3.用 Chrome 开辟对象 Profiler 辨认机能瓶颈

这是一个便利的对象,可让钠揭捉?摘要创建哪个设备文件类型。记录分派时光点、获取堆快照并记录所分派的设备文件用于内存分析。在这个机能优化之后,你的应用法度榜样将在不到两秒钟内完全出现,用户可以随便与之进行交互。

4.尽量削减不雅察者

AngularJS 完全环绕在它的 digest cycle 中。每当触发 digest cycle 时,它将轮回遍历每个绑定以检测模型更改。经由过程削减不雅察者的数量,可以削减每个 digest cycle 中消费的时光。它还可以削减应用法度榜样的内存占用。

5.ng-if 比 ng-show 更佳

ng-show 指令在特定元素上切换 CSS 显示属性,而ng-if指廖实际上大年夜 DOM 中删除元素,并在须要时从新创建它。此外, ng-switch 指令是 ng-if 的替代筹划,它们具有雷同的机能。

6.不要应用 ng-repeat

没有应用 ng-repeat 指令就是应用法度榜样的最大年夜成功,是以建议避免应用 ng-repeat 并应用 JavaScript 构建 HTML。对于发声的应用法度榜样,应用 ng-if 导致增长不须要的不雅察者。应用 ng-bind-html 指令是摆脱这个问题的更好的解决筹划。

7.应用 $watchCollection (包含第三个参数)

应用带有两个参数的 $watch 是好的 - 然则在应用 $watch(‘value’,function(){},true)时带有三个参数的 $watch,这使得 Angular 可以履行深度检查(以检查对象的每个属性)。 但价值可能是十分昂贵的。是以,为懂得决如许一个机能问题,Angular供给了 $watchCollection(‘value’, function(){})指令,它与第三个参数几乎雷同,只是以低成本检查对象属性的第一层。

8.为了调试问题应用 console.time

  • 45%的投票者表示是因为源代码问题影响的机能。
  • 只有 8% 的投票者承认实际上做了改变。
  • 一些受访者责备 AngularJS 的架构。
  • 个中有些则责备不须要的双向绑定。

如不雅你的应用正尽力调试问题并影响了Angular 机能,就须要应用 console.time,这是一个很不错的 API。

9.反绑定 ng-model

你可以反绑定输入的 ng-model 。举例来说,像谷歌那样的反绑定搜刮输入,你必须应用 ng-model-options=”{debounce:250}”。这能让其在 digest 周期内,至少每 250ms 就检测一次触发。

如今的开辟时光是异常宝贵的,是以你须要一个像 AngularJS 如许周全的框架来快速开展营业。

经由大年夜量研究,我们收集了一些其余重要工作来进步 AngularJS 的机能。

下面有 4 个用于晋升 AngularJS 机能的对象。

1.Protractor

Protractor 是最强大年夜的主动化端到端的 Angular 测试对象,由 Angular 团队开辟。Protractor 由一些巨大年夜的技巧组合而来,比如 NodeJS、Selenium]WebDriver、Mocha、Cucumber 和 Jasmine。

2.GulpJS

GulpJS 用于主动履行反复性的义务,是流式的构建体系,可以应用 JSHint 或 ESLint 来检查 JavaScript。


  推荐阅读

  一论坛、一小镇,人工智能来到杭州

成长过程中,小镇充分借力浙江大年夜学、阿里巴巴、海康威视、贝达药业以及周边电子商务、数字安防、云计算和大年夜数据等智力和R当资本,整合人才、家当、本钱、孵化器等各类要素,使其>>>详细阅读


本文标题:9种改善AngularJS性能的方法

地址:http://www.17bianji.com/lsqh/36132.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)