`
keepwork
  • 浏览: 334383 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JS--创建10万行表格 页面显示10万行数据

js 
阅读更多
<html>
<head></head>
<style>
table
{
    border-collapse:collapse;
    table-layout:fixed;
    overflow:hidden;
}
td
{
    overflow:hidden;
    white-space: nowrap;
}
--></mce:style><style mce_bogus="1">table
{
    border-collapse:collapse;
    table-layout:fixed;
    overflow:hidden;
}
td
{
    overflow:hidden;
    white-space: nowrap;
}
</style>
<script src="jquery-1.3.2.min.js"></script>
<body>
<input type=button onclick=createTable() value='创建表格:使用 thead'>
<input type=button onclick=createTable(1) value='创建表格:使用 colgroup'>
<br>
<input type=button onclick=hideCol(1) value='隐藏第 2 列'>
<input type=button onclick=showCol(1) value='显示第 2 列'>
  
<input type=button onclick=hideCol_fast(1) value='快速隐藏第 2 列'>
<input type=button onclick=showCol_fast(1) value='快速显示第 2 列'>
<div id=tableBox></div>
<script type="text/javascript">
var tableRowsLen = 10000; // 创建万行表格

//--------------------------------------------------------
// 时间转为时间戳(毫秒)
function time2stamp(){var d=new Date();return Date.parse(d)+d.getMilliseconds();} 

//--------------------------------------------------------
// 创建表格
function createTable(isUseColGroup)
{
    var t1 = time2stamp(); 
    if (isUseColGroup) // 使用 colgroup 标签
    {
        var str = "<table border=1>" +
                    "<colgroup>" + 
                            "<col width=100 class=col1 />" +
                            "<col width=200 class=col2/>" + 
                            "<col width=50 class=col3/>" + 
                    "<\/colgroup>" +
                    "<tbody>";
    }
    else
    {
        // 使用 thead 标签
        var str = "<table border=1>" +
                    "<thead>" + 
                        "<tr>" +
                            "<th width=100 class=col1>col1<\/th>" +
                            "<th width=200 class=col2>col2<\/th>" + 
                            "<th width=50 class=col3>col3<\/th>" + 
                        "<\/tr>" +
                    "<\/thead>" +
                    "<tbody>";
    }

    var arr = [];
    for (var i=0; i<tableRowsLen; i++)
    {
        arr[i] = "<tr><td class=col1>" + i + "--1<\/td><td class=col2>" + i + "--2</td><td class=col3>" + i + "--3<\/td></tr>";
    }
    str += arr.join("") + "</tbody><\/table>"; // 用 join() 方式快速构建字串,速度极快
    tableBox.innerHTML = str; // 生成 table
    var t2 = time2stamp();
    alert("耗时:" + (t2 - t1) + " 毫秒");

}

//--------------------------------------------------------
// 隐藏/显示指定列
function hideCol(colIdx){hideOrShowCol(colIdx, 0);}
function showCol(colIdx){hideOrShowCol(colIdx, 1);}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function hideOrShowCol(colIdx, isShow)
{
    var t1 = time2stamp(); // 
    var table = tableBox.children[0];
    var rowsLen = table.rows.length;
    var lastTr = table.rows[0];

    if (rowsLen > 1001) 
    {
        if (!confirm("将要对 1000 行以上的表格操作,这将非常耗时(甚至导致浏览器死掉)。\n您确定要继续吗?"))
            return;
    }

    for (var i=0; i<rowsLen; i++)
    {
        var tr = table.rows[i];
        tr.children[colIdx].style.display = isShow ? "" : "none";
    }
    
    var t2 = time2stamp();
    alert("耗时:" + (t2 - t1) + " 毫秒");
}

//--------------------------------------------------------
// 隐藏/显示指定列 - 快速
function hideCol_fast(colIdx){hideOrShowCol_fast(colIdx, 0);}
function showCol_fast(colIdx){hideOrShowCol_fast(colIdx, 1);}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function hideOrShowCol_fast(colIdx, isShow)
{
    var t1 = time2stamp(); // 
    var table = tableBox.children[0];
    var thead = table.children[0]; // 可能是 thead 或者 tbody,也可能是 colgroup
    if (thead.tagName.toLowerCase()=="colgroup") // 对 colgroup 特殊处理
    {
        var td = thead.children[colIdx];
    }
    else
    {
        // 注意:如果表格没有 thead 和 tbody 标签,则 table.children[0] 是 tbody
        var tr = thead.children[0];
        var td = tr.children[colIdx];
    }
    td.style.width = 0;
    
    var t2 = time2stamp();
    alert("耗时:" + (t2 - t1) + " 毫秒");
}

//--------------------------------------------------------
createTable();
</script>
</html>

 开发者博客www.developsearch.com

分享到:
评论

相关推荐

    js前端Excel大数据处理导入

    在JavaScript(JS)前端开发中,处理Excel大数据的导入是一项挑战。随着Web应用程序对数据处理能力的需求提升,前端工程师必须找到有效地处理大量数据的方法,而不仅仅是依赖后端服务器。本主题将深入探讨如何使用...

    js实现数据导出为EXCEL(支持大量数据导出)

    这种方式简单,但当数据量大时可能会导致性能问题,因为所有数据都需要一次性加载到页面上。 4. **CSV(Comma Separated Values)格式导出** - CSV是一种通用的、轻量级的数据交换格式,它使用逗号分隔值来表示...

    阿里云 专有云企业版 V3.9.0 表格存储Table Store 用户指南 20191017.pdf

    它提供灵活的数据模型,支持行存储和列存储,能够处理PB级别的数据,并支持万亿级别的行和百万级别的列。 **2. 使用须知** 在使用表格存储之前,用户需了解并遵守法律声明中的规定,包括通过官方渠道获取文档、保守...

    情感分析-亚马逊评论-再次访问:这是情感分析-亚马逊评论通过交互式数字和表格进行了重新访问,从而可以进行更精细的分析

    表格则可能提供了详细的原始数据,便于用户进一步筛选、排序和过滤评论,以便进行定制化的研究。 此外,标签"HTML"暗示了这个资源可能是网页形式,意味着它可能是一个在线应用或网页工具,用户可以直接在浏览器中...

    HTML期末考试复习题及参考答案.pdf

    - 表格的列数不只取决于第一行的`TH`和`TD`的`colspan`属性,还可能受其他行的影响。 - `align`属性用于控制表格单元格内容的水平对齐,而不是垂直对齐。 - 框架(Frames)技术允许在一个浏览器窗口显示多个独立的...

    DotNetCharts:图表是数据的图形表示,其中“数据由符号表示,例如条形图中的条形图,折线图中的线或饼图中的切片”。 图表可以表示表格数值数据,函数或某些定性结构,并提供不同的信息

    CanvasJs图表具有10倍更好的性能和简单APIJavaScript图表。 与流行的JS框架(例如AngularJS等)轻松集成。库附带30种不同类型的图表,包括折线图,柱形图,条形图,面积图,样条图,饼图,圆环图,堆积图等。它支持...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    高级软件工程师简历表格模板.doc

    1. **编程语言与框架**:简历中提到工程师精通JavaScript,用于创建可复用的组件。此外,他还熟悉SQL,能够灵活运用SQL语句进行数据操作。在项目经验中,还涉及到Spring框架的使用,这是一个广泛应用于Java Web开发...

    postgis-editor:可访问的PostGIS查询编辑器和可视化器

    特征: 只需键入您的查询-我们会尝试找出几何形状/投影基于MapboxGL的漂亮可视化单击任何功能以获取完整信息表格视图跳转至重要功能轻松显示10万个对象对Windows,OSX和Linux的跨平台支持安装。 现在解压缩发行版,...

    选题表_样例.doc

    5. 参考文献:引用10篇以上文献,其中至少1篇为外文文献。 【时间规划】 - 实习调研:2周,了解畜牧业市场现状,收集用户需求。 - 阅读资料:1周,学习相关技术和理论知识。 - 设计计算:1周,系统架构设计和数据库...

    10 万阿里人都爱用的网红工具,语雀如何“用保护钱包的技术在保护文档安全​”?…

    语雀,作为蚂蚁金服的一款云端文档协同工具,已经成为阿里巴巴集团约10万员工的首选,尤其在远程办公成为常态的背景下,其重要性日益凸显。这款工具在疫情期间为企业提供了有效的远程协作解决方案,帮助团队保持高...

    【运营方案】男装天猫店运营策划方案-知识杂货店.doc

    - 行业分析显示,大码男装市场销售额逐年增长,Top 10店铺年销售额均超千万。2014年行业流量呈现季节性波动,需根据实际情况设定月销售目标。T恤、夹克等是主要产品类别。 - 竞争对手分析,例如PANMAX、JSMIX、the...

    Dojo的一些学习资料

    10. **dojo/json**: 提供了JSON序列化和反序列化的方法,便于在JavaScript和服务器之间传递JSON数据。 在"dojo学习笔记.pdf"中,你可能会学习到如何导入Dojo,如何使用模块系统,以及一些基本的Dojo API。"Dojo快速...

    网页设计试题

    5. 选项B错误,JPEG能表现真彩色,但不止1024种颜色,而是支持2^24种颜色(约1670万色)。 6. 创建普通文本输入框应使用`&lt;input type="text"&gt;`。 7. 选项C错误,表单可以包含图片和其他HTML元素。 8. 单选框组通过`...

    网站访客 抓取qq 获取访客qq号 统计

    例如,`Count.js`可能包含了统计访客数据的逻辑。 4. **数据库存储与管理**:抓取到的大量访客信息需要存储在数据库中,便于后续的分析和处理。这通常涉及到数据清洗、去重、分类等操作,以确保数据的有效性。 5. ...

    完整版脚本娃娃__Ext4.1.0_Doc中文版_V1.0.0_Beta

    ExtJS是一款强大的JavaScript库,用于构建交互式、数据驱动的Web应用。它提供了一套完整的组件化开发框架,包括各种UI控件、数据绑定、事件处理机制等,广泛应用于企业级应用开发。 Ext4.1.0是该框架的一个重要版本...

    trilium:使用Trilium Notes建立您的个人知识库

    可用性和性能均能很好地扩展到超过10万张钞票 针对智能手机和平板电脑进行触摸优化的 和 可轻松保存Web内容 建物 Trilium是作为桌面应用程序(Linux和Windows)或服务器上托管的Web应用程序(Linux)提供的。 Mac OS...

    多多校园论坛,很经典很强大

    cls_name 设置等级名称,每级用","分开,等级按发贴数划分,一级为0-10,以后按上一级的3倍上升,十级约7万贴,设置级别名称时请控制在6个中文以内 tout=20 在线列表刷新时间,单位为分钟 pwtomail=1 开启邮件找回密码...

    计算机应用基础5(20211010002310).pdf

    其中"GHz"是CPU主频的单位,指的是每秒钟的周期数,"MHz"是兆赫兹,代表一百万赫兹,是频率的度量单位。"MIPS"表示每秒处理的百万条指令数,是衡量CPU处理速度的一个指标。 2. 计算机存储知识 提到了与计算机存储...

Global site tag (gtag.js) - Google Analytics