性能调整淘汰应用程序 - 改善响应时间的指南

Mar*_*son 42 performance knockout-mapping-plugin knockout.js

我有一个庞大,复杂的页面,严重依赖于knockout.js.性能开始成为一个问题,但检查调用堆栈并试图找到瓶颈是一个真正的挑战.

我注意到另一个问题(Knockout.js - 理解foreach和with),接受的答案有评论:

......我建议不要使用with因为开销而需要高性能的地方......

假设该陈述是真的,这是非常有用的东西要知道,我没有找到这种性能提示的来源.

因此,我的问题是:

在深入了解经典性能调优之前,是否有适用于帮助我的应用程序性能的一般指南/重要提示.

RP *_*yer 37

我认为在一个答案中布置我想到的提示是太多了.

我开始撰写关于此主题的一系列博客文章.第一篇文章就在这里.

这篇文章描述了如何一点if/with工作(复印件孩子为模板,重新呈现使用时被触发绑定模板),并解释这些绑定怎么可能原因再次呈现更经常超过预期.

我将在以后的帖子中更新这个答案.

  • 优秀的博客文章,瑞恩.围绕'if'绑定重新渲染实现建议已经对我的应用程序产生了可测量的差异.期待未来关于这个问题的博客文章. (4认同)
  • [here](http://www.knockmeout.net/2012/04/knockoutjs-performance-gotcha.html)和[here](http://www.knockmeout.net/2012/06/knockoutjs-performance-gotcha -3-all-bindings.html)是关于此主题的最新帖子. (2认同)

Jon*_*han 6

我发现的最大问题之一(并没有在其他地方讨论过)是Knockout 在元素上的任何绑定发生变化重新计算元素上的每个绑定.

这通常不是什么大问题,但对于往往价格昂贵的绑定(例如template),它可能会产生严重的性能问题.

如果它们不是元素的唯一绑定,则附加将内容/子项(template,foreach等)呈现给虚拟元素(使用无容器控制流语法)的绑定.

  • Knockout 3.0顺便解决了这个问题:http://blog.stevensanderson.com/2013/07/09/knockout-v2-3-0-released-v3-0-0-beta-available/ (3认同)