这两天设计一个表格的时候,碰到一个问题.
背景是这样的.我要设计一个一部分列固定的表格(类似于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,我所了解的只有一层一层向上找.
各位还有没有其它想法可以指教一下?
问题补充
原来我这么笨...
谢谢金龙同学哈...
用选择器当然慢了,你可以为每一行设置一个有规则的id,用documentById来获取对应的行即可
我只能说:标题很吸引人。。。。
标题确实很吸引人
我也很快被吸引过来了...
首先,如果测试的环境是IE8,那么请添加
在IE8模式下,大DOM效率很差