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




performance knockout-mapping-plugin (2)

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

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

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

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

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

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

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

因此,我的问题是:

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


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

我开始撰写关于此主题的一系列博客文章。 第一篇文章就here

这篇文章详细描述了if/with work(将子项复制为模板并在触发绑定时使用模板重新呈现),并解释了这些绑定如何导致重新渲染比预期更频繁。

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