我正在编写一个应用程序,它是一个“功率计”,在那里我显示导航中的“位置”列表,其中有一个与之相关的额定功率,以及一个聚集这些信息的仪表。位置可以嵌套。单击某个位置会更改我的应用程序的“状态”,并将其子位置加载到导航中。单击“上一步”将用户带到以前的位置列表。
目前,我对新的额定功率进行了投票(稍后将研究更好的解决方案,但这只是一个概念证明),然后我使用模板和类似于
$(nav).html(someHtml)
我正在使用事件委托,因此不需要在状态更改时重新绑定我所在位置上的事件。
所以,现在我每次获取一组新数据时都要覆盖视图。我不确定这是否会对性能产生影响,但肯定会对功能产生影响。例如,有时我的位置列表超过了我的导航空间,所以我滚动(
overflow:auto
)但是,当我更新视图时,它会重置该分区的Scrolltop,这使得在一长串位置列表中滚动的人无法使用它。(例如,由于轮询间隔为2秒)
所以,我正在寻找一种解决方案,它允许我将JSON数据实际绑定到每个位置的DOM元素。然后,当我进行轮询时,我可以扩展我的现有数据并让它自动刷新我视图中的值。这有可能吗?我刚发现
jquery-datalink
插件,但它似乎实现了这只是为表单,我没有在这个应用程序的表单。
我从来没有真正使用过jquery的数据方法,我甚至不知道这是否是我需要的,但基本上我想要这样的方法:
-
单击某个位置时,触发一个状态更改,该更改将加载新数据并设置我的轮询URL。
-
第一次数据加载将生成(新位置的)视图
-
随后的数据加载(通过轮询)将简单地用适当的数据更新DOM元素,而不是重新生成HTML
我对一些可能的解决办法了如指掌。伪代码和概念证明非常受欢迎,因为我完全能够实现一个理论解决方案。
编辑
将它与您选择的模板化解决方案(jquery.tmpl或mustache等)集成的奖励积分