js创建10万行表格 页面显示10万行数据
js创建10万行表格 页面显示10万行数据
<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 οnclick=createTable() value='创建表格:使用 thead'>
<input type=button οnclick=createTable(1) value='创建表格:使用 colgroup'>
<br>
<input type=button οnclick=hideCol(1) value='隐藏第 2 列'>
<input type=button οnclick=showCol(1) value='显示第 2 列'>
<input type=button οnclick=hideCol_fast(1) value='快速隐藏第 2 列'>
<input type=button οnclick=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>
肯定知道-精品推荐:
1、一个土八路凭什么让冈村宁次都忌惮?
2、二战时期仅有的国军开坦克追日本兵,都压成肉酱了!!!
3、军事奇迹:看一书生7000人马横扫大半个中国的奇迹
4、国军悍将创造军事奇迹后为什么会投降日军?
5、国军战神曹锡,一人消灭日军一个大队!
6、flash无法覆盖的问题_三种办法可以解决flash覆盖其他元素
7、南海石油30年疯狂开采,到底还剩多少?
8、送礼国家也收税?莫不是都疯啦?
9、古代第一美女的悲惨结局
10、中国空军光棍节轰炸日本航母“龙骧”号
11、日本本土史上第一次空袭竟是中国轰炸机
12、中原大战中老将的王牌战将为何被害?
13、刷流量软件-免费刷流量工具-软件
转载于:https://www.cnblogs.com/javaspring/archive/2011/07/11/2656352.html
js创建10万行表格 页面显示10万行数据相关推荐
- qt在表格中如何画线_Qt如何在表格中显示和编辑数据
请耐心等待,因为这是一个稍微有点主观的问题,但我知道最佳实践后可能是常见情况.Qt如何在表格中显示和编辑数据 我有拆分到其中我使用Qt来操纵多个(源码)表中的数据. (sql)视图是显示多个表中数据的 ...
- layui在搜索的时候没有数据,在表格中显示暂无数据
layui在搜索的时候没有数据,在表格中显示暂无数据 网上有很多教程,都是说要改变table.js,但是我发现不需要,只需要在返回json数据的时候做一下判断即可. php给layui返回json数据 ...
- vue动态渲染表格,显示上万条数据
<template><!-- 表格 --><div class="table-box"><div class="tabletbo ...
- elementui的tree组件页面显示不出数据_只要10分钟,教你配置出炫酷的数据可视化大屏...
在电影<摩天营救>中,监控中心的全方位展示屏幕给人印象深刻.现在这种立体化大屏幕似乎成了好莱坞大片的标配.其实,这种逼格很高的镜头就是一个数据可视化大屏.随着社会信息化的高速增长,数据可视 ...
- 使用Vue.js搭建简单的表格页面
<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>我 ...
- elementui的tree组件页面显示不出数据_[Angular 组件库NG-ZORRO基础入门] -Hacker News: Pagination...
前言回顾 到目前为止,我们已经实现了 hacker news 大部分页面功能设计,但是仍然缺少一个重要的翻页功能,API 现在没人是返回 20 条数据,我们今天会使用 Pagination 组件 将分 ...
- jsp页面显示mysql数据库数据_jsp页面显示数据库表数据
在class.formname那里报错,错误提示语法错误,看不出来在哪啊,没错啊? pageEncoding="utf-8"%> 图书清单 table { border: 2 ...
- echarts图表没有数据的时候,在页面显示暂无数据
if(arr.length=='0'){option = {title: {text: '暂无数据',x: 'center',y: 'center',textStyle: {color: '#65AB ...
- echarts图表无数据无时,在页面显示暂无数据
var option = {title: {text: '暂无数据',x: 'center',y: 'center',textStyle: {color: '#fff',fontWeight: 'no ...
最新文章
- 智慧停车产业链市场全透析
- 用aspnetpager实现datalist分页(绝对的简单实用)
- 编写简单的发布者和订阅者(C++)---ROS学习第9篇
- 我的机器学习入门之路(下)——知识图谱、推荐、广告
- JavaScript之手写Promise
- 不可达的对象一定要被回收吗?
- 互联网公司忽悠员工的黑话,套路太深了。。。
- chrome 网页重新加载_在Chrome中为各个网页设置自定义重新加载时间
- 项目不能使用fn标签_无服务器,Java和FN项目的第一步
- python求一组数的最大值_python快速求一个数组的最大值/最小值及其索引
- mysql冷热数据LRU_浅析MySQL的lru链表
- Linux防火墙iptables的策略
- Java Web学习总结(39)——JavaEE常用的Jar详解
- Selenium WebDriver Api 知识梳理
- 我如何学习:不要停下学习的脚步
- mysql5.7.13编译安装_编译安装MySQL-5.7.13
- java 置顶窗体_windows 下如何让一个窗口置顶?
- 3dmax卸载工具_3Dmax软件无法安装?3Dmax软件正确卸载方法,重装无忧
- easyui datagrid 多一列
- 登录验证,如果输入错误次数超过3次,则锁定该账户
热门文章
- php 改变图片的宽高,php缩放图片(根据宽高的等比例缩放)示例
- 指标命名随意,增加沟通成本,套用这个公式,学会规范化定义指标
- 数据意识崛起,从企业应用看BI软件的未来发展 1
- 深入了解帆软报表系统的启动过程一
- tile布局的ButtonBar
- java equals getclass_Java equals()方法 – 子类中equals的语义如何确定getClass和instanceof的使用...
- c++检测固定usb端口有无设备接入_电脑USB技术白皮书
- linux thinkphp 计划任务_ThinkPHP定时任务项目案例分析
- python列表元素循环左移_JavaScript系列——数组元素左右移动N位算法实现
- 牛客 2021年度训练联盟热身训练赛第二场 E题NIH Budget