我正在构建一个backbone.js应用程序。它有很多交互式计算器类型形式。当用户在输入中键入值时,我需要这些表单中的值才能更新。我在考虑两种方法:
策略:
1)使用下划线模板重新渲染每次交互时的视图
OR
2)渲染一次,找到jQuery中显示的每个点,并在每次交互时更新它们
我的问题:从可维护性的角度和浏览器性能的角度来看,您认为最佳做法是什么?最小化重绘等似乎对我来说是一个好主意,但附加所有听众并将它们与视图的位置配对也似乎有点糟糕。
非常感谢任何建议,
杰克
答案 0 :(得分:0)
嗯,这肯定是一个主观问题,无论如何都无法回答。这实际上取决于两种策略的复杂性,这些策略又取决于您的应用逻辑。还有一些想法:
您可以让多个元素彼此平行,每个元素都有自己的内容(视图)。根据逻辑,隐藏其余部分并仅显示一个。这避免了多次重新呈现视图,但是你必须编写一些维护多个视图的逻辑(全部隐藏,显示一个)。所以这种方法很好,只要你有2-3个视图,你的应用需要多次在这些视图之间切换。
根据您的操作方式,重新绘制视图可能不是一项昂贵的操作。只需缓存选择器并对其进行所有更改,并仅更新DOM一次,这是最常见的做法。如果你只重新渲染一个视图,如果它只需要一个DOM操作,那么你很好。
从代码可维护性的角度来看,一定要采用策略#1,重新呈现视图。