Live Query 是一个新的 jQuery 插件,你可以用它给匹配的 DOM 元素注册事件或者激发回调函数。不仅是当前与选择器匹配的元素,还有后续通过 Ajax 添加的元素都会得到绑定。当元素不再和选择器匹配时,它也会自动取消事件注册。在对 Ajaxian 上一篇文章的评论中,John Resig 指出 Live Query 与 Prototype 和 Dojo 中其它类似工具的不同之处在于(这里强调我的观点):
你给 [Live Query] 一个 jQuery 选择器,[Live Query] 会实时地在整个 DOM 范围把它持久化。这意味着你可以设定一个查询(并且再也不必去重新调用或者初始化它)它的效果在所有地方都会见到:就像是 CSS。这是一个着实重要的区别,同时我很高兴它几乎没什么速度损失的开销就做到了。
这种绑定的“鲜活性(lively-ness)”相当有意思。这个插件每 20 毫秒做一次检查,看是否经由其它 jQuery 调用进行过 DOM 操作。如果一个 jQuery 动作修改了 DOM,那活跃绑定就被重新评估。这暗示在 jQuery 之外的 DOM 操作不会触发重新评估。这实在快要成了真正流畅(fluid)(并活跃(live))、跨浏览器的机制,可以通过类似 CSS 的方式给元素恰如其分的施加行为。
查看英文原文: JQuery Gains Live DOM Binding with Live Query Plugin - - - - - -
译者简介:岳立东,Ableverse 创始人,技术推广大使。开源项目 WoW (内含 ToB 对象数据库)和 SecureJSH 创建者。目前致力于东道组件接合(Hosting Based Interfacing)理论研究,在此基础上的软件并行分布架构及对象数据库应用,技术博客 http://complystill.javaeye.com/ 。欲参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com 。
评论