代码之家  ›  专栏  ›  技术社区  ›  brad

带视图的jquery绑定数据

  •  4
  • brad  · 技术社区  · 14 年前

    我正在编写一个应用程序,它是一个“功率计”,在那里我显示导航中的“位置”列表,其中有一个与之相关的额定功率,以及一个聚集这些信息的仪表。位置可以嵌套。单击某个位置会更改我的应用程序的“状态”,并将其子位置加载到导航中。单击“上一步”将用户带到以前的位置列表。

    目前,我对新的额定功率进行了投票(稍后将研究更好的解决方案,但这只是一个概念证明),然后我使用模板和类似于 $(nav).html(someHtml)

    我正在使用事件委托,因此不需要在状态更改时重新绑定我所在位置上的事件。

    所以,现在我每次获取一组新数据时都要覆盖视图。我不确定这是否会对性能产生影响,但肯定会对功能产生影响。例如,有时我的位置列表超过了我的导航空间,所以我滚动( overflow:auto )但是,当我更新视图时,它会重置该分区的Scrolltop,这使得在一长串位置列表中滚动的人无法使用它。(例如,由于轮询间隔为2秒)

    所以,我正在寻找一种解决方案,它允许我将JSON数据实际绑定到每个位置的DOM元素。然后,当我进行轮询时,我可以扩展我的现有数据并让它自动刷新我视图中的值。这有可能吗?我刚发现 jquery-datalink 插件,但它似乎实现了这只是为表单,我没有在这个应用程序的表单。

    我从来没有真正使用过jquery的数据方法,我甚至不知道这是否是我需要的,但基本上我想要这样的方法:

    • 单击某个位置时,触发一个状态更改,该更改将加载新数据并设置我的轮询URL。
    • 第一次数据加载将生成(新位置的)视图
    • 随后的数据加载(通过轮询)将简单地用适当的数据更新DOM元素,而不是重新生成HTML

    我对一些可能的解决办法了如指掌。伪代码和概念证明非常受欢迎,因为我完全能够实现一个理论解决方案。

    编辑 将它与您选择的模板化解决方案(jquery.tmpl或mustache等)集成的奖励积分