想法来源于我不久前发的一贴
http://topic.csdn.net/u/20100107/11/9dfa59c6-1c6b-4061-a95d-8acf8ac25997.html
因为在开发过程中,发现当表格展示大量数据的时候,页面性能下降得厉害,而其中提到的一点
让我想到了用div来模仿表格的可能性
这样做,无疑会增加不少工作,但如果说在展示大量数据时,有助于提高性能的话,还是值得的
在这里征求下大家意见:
用DIV模仿表格,在动态加载数据的效率上,是否会有所提高?
理由是因为创建一行,至少创建一个tr,以及n个td,如果用div的话,也是几乎一样要创建n个div。
而且,table做的数据表格,很难固定标题行,网上虽然有不少方法可以固定第一行,但大多数是通过设置CSS,通过JS表达式来完成,这种做法其它浏览器行不通
但会遇到一些问题,table可以根据表格内容自动调整单元格尺寸(这应该也是导致效率下降的原因),而div的话,很可能达不到这样的效果另外问下,EXTJS中的表格似乎也不是table,研究过ExtJS源代码的能否告诉一下ExtJS表格是用什么做的
不过我不打算用ExtJS这种庞大的东西

解决方案 »

  1.   

    得看你具体的数据情况,显示的是什么样的数据,显示格式是否常规table行式.
    并不是说div就比table强,看什么样的场合.
    如果你只是大量文字信息,并且格式不是太复杂.建议你用table.
    如果image较多建议用div,div是边下载边渲染,table是下载完后渲染.
      

  2.   

    可以
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>www.js-hp.cn</title>
    <style>
    #info{width:510px; overflow:hidden;}
    ul,li{list-style:none; padding:0; }
    li{height:100px; float:left; margin:-1px 0 0 -1px; border:1px solid #000000}
    .s1 {width:200px;}
    .s2 {width:300px;}
    </style>
    </head>
    <body>
    <div id="info">
    <ul>
        <li class="s1">A1</li>
        <li class="s2">B1</li>
        <li class="s1">A2</li>
        <li class="s2">B2</li>
        <li class="s1">A3</li>
        <li class="s2">B3</li>
    </ul>
    </div>
    </body>
    </html>
      

  3.   

    table的作用就是用来显示列表数据的。没有div+css的时候,只能用表格来做布局,那样是没办法。但是如果只是显示列表数据,而且多列的话,还是用table好。
      

  4.   

    我是想用div来写个表格控件,通过AJAX动态加载数据的,不一定是文字信息
    主要通过JS创建dom实现,所以应该不是你说的 div是边下载边渲染,table是下载完后渲染 这种情况吧,这种情况应该是静态加载时div和table的区别
      

  5.   

    div可以减少DOM元素数量,有利于性能,但这需要比较好的CSS技术
      

  6.   

    <div>中使用<dt><dl>等我们的网站就这么干的
    具体都是写CSS控制
      

  7.   


    还有如果你的数据量确实较大  而且复杂
    可以考虑DIV  或者 UL 
      

  8.   

    table 是整体渲染,行列多了以后当然会慢!div 或许能快些吧!lz 提到“表格展示大量数据的时候,页面性能下降得厉害”,关键是这么多的数据显示在页面里真的有实际意义么?!用户看的过来么?!这个页面的设计肯定有问题,要么提供灵活的查询条件,要么限制输出条数,要么直接提供导出下载,总之要避免在页面中显示大量数据,因为用户看不过来大量数据,显示了就是浪费。与其千方百计显示海量无效数据,不如用心设计提供有效数据!技术要靠设计来指导,设计要靠技术来实现,二者缺一不可!
      

  9.   

    如果用div的话,比如说每列的所有单元格都要保持尺寸一至的话,而且如果需要调整宽度的话,怎么样实现比较好?
      

  10.   

    如果只是显示内容的话,还是用table吧,DIV很灵活,但是也非常不好控制,在代码量上几乎没什么差异,至于渲染效率还要看浏览器哦
      

  11.   

    第一,table在新能上对div会有明显的下降?对此,我表示怀疑。毕竟从渲染的角度来看,都是box,不应该有大的区别。如果担心计算,在css上设为固定高宽,等等应该会有助于渲染,但这也是理论上而已。其二,是要考虑SEO,语义上是table结构的数据就应该用table。其实现在做网站一个要点是对spider编程,怎么让spider抓得顺利,让spider容易理解是一个很重要的考虑点。
      

  12.   

    理论是完全没问题的
    但是 div在某些 浏览器中显示的不太正常
    我记得 我做过一个透明的div窗体
    我家显示正常 到别人的机器里就显示异常了
    还是尽量用比较通用的做吧 呵呵
      

  13.   

    good!你用CSS模拟个复杂的表格试试!代码量比table还多呢!适可而止:哪个需要敲的键少我用哪个
      

  14.   

    你应该问一问netlover你要在这站几年才能有2个ruby
      

  15.   

    个人认为完全没必要,EXTJS的表格是div加table,其一个table所需要的dom至少是普通table的三倍以上
      

  16.   

    要是CSDN发贴时能有个投票功能就好了
    看来还是反对意见比较多,做分页算了。
      

  17.   

    我做了一个页面,1500行的table,没分页,因为要点击表头自动排序的功能,不知道用div+css能否实现?目前是用memcache处理。