gdipkf1986 2010-04-09 18:28
浏览 278
已采纳

超大型的dom树下,如何根据属性快速定位某一个dom结点?(ext的选择器太慢了)

这两天设计一个表格的时候,碰到一个问题.

背景是这样的.我要设计一个一部分列固定的表格(类似于excel的冻结功能).我的实现是左右各一个table,右边的table滚动时,同时左边的table也滚动到相同的位置.(实际上,左右两个table都是模拟的,因为要装载超大量的数据,html的table标签在渲染速度有够呛,但左右两个table的dom结构完全一样).因为原来的公司用Ext用习惯了,所以这次底层的lib用的是ext-core.

用户点击左右Table中的某一行以后,会给这一行加上一个css来标志己选择.然后找到另一个table,找到其中对应的一行,同样也加上css.

但现在的问题是,无论左右哪个table被用户点击到,能够快速响应的只有这个table,对应的另一个table中要花大量的时间来找到对应的这一行.(我的方法是在生成左右table的行时,都加上一个行号的属性,然后用ext的选择器来找到.但在1000行的情况下,效率就己经相当低了.)

各位有没有办法解决这个问题? 我现在有一个想法,但未实现,不知道效果如何.

我的想法:
先找到这个被点击的行在所处的Table中的位置,类似于xpath这样的,然后根据这个xpath去另一半table中找对应的结点.理论是应该会快很多.但不知道有没有简单的方法生成一个这样的xpath,我所了解的只有一层一层向上找.

各位还有没有其它想法可以指教一下?
问题补充
原来我这么笨...

谢谢金龙同学哈...

  • 写回答

5条回答 默认 最新

  • gold_dragon 2010-04-09 18:28
    关注

    用选择器当然慢了,你可以为每一行设置一个有规则的id,用documentById来获取对应的行即可

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名