问高手一个关于Grid的问题
悬赏:10 发布时间:2008-07-25 提问人:lixiang (初级程序员)
我想问下高手你们的GRIP是怎么操作DOM的
是用的 getElementById("Desktop").innerHTML=temp.join(""); 吗?
还是用的动态创建DOM 的方式
究竟哪种方式的效率高
getElementById("Desktop").innerHTML=temp.join(""); 的方式有严重内存泄露问题
该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给所有参与回答的会员
是用的 getElementById("Desktop").innerHTML=temp.join(""); 吗?
还是用的动态创建DOM 的方式
究竟哪种方式的效率高
getElementById("Desktop").innerHTML=temp.join(""); 的方式有严重内存泄露问题
该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给所有参与回答的会员
回答
我见过的很多个例子,包括我自己所写过的Grid,都是以动态创建DOM的方式进行创建的。
一般一次性生成一个50X50的Grid,无任何内容,有部份CSS(背景,边框),生成时间一直都在1秒以内,由此看来,性能是不成问题的;
不过要注意,在动态生成的单元格对象时,要将同一行生成的单元格放进一个DocumentFragment对象中,再添加到TR标签里面。在我电脑上进行测试,不用DocumentFragment对象时,生成一个50X50的表格要3+秒,而用了之后,时间狂减到1-秒。
如果直接用innerHTML效率肯定是会比操作DOM的效率要高,这点是不用怀疑的。
只是楼主所说的内在泄露问题我还没有遇到过,所以也无法对这个问题进行分析。不过个人还是推荐DOM实现,DOM实现的灵活性更高,个性化定制更方便。
一般一次性生成一个50X50的Grid,无任何内容,有部份CSS(背景,边框),生成时间一直都在1秒以内,由此看来,性能是不成问题的;
不过要注意,在动态生成的单元格对象时,要将同一行生成的单元格放进一个DocumentFragment对象中,再添加到TR标签里面。在我电脑上进行测试,不用DocumentFragment对象时,生成一个50X50的表格要3+秒,而用了之后,时间狂减到1-秒。
如果直接用innerHTML效率肯定是会比操作DOM的效率要高,这点是不用怀疑的。
只是楼主所说的内在泄露问题我还没有遇到过,所以也无法对这个问题进行分析。不过个人还是推荐DOM实现,DOM实现的灵活性更高,个性化定制更方便。
ham (架构师) 2008-08-04




