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 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100