JavaScript 如何创建可以容纳数百万行数据的数据网格

JavaScript 如何创建可以容纳数百万行数据的数据网格

在JavaScript中,可以使用简单的循环显示多达 10 5行数据。这还取决于浏览器运行如此庞大复杂的循环的能力。当将如此庞大的任务交给浏览器时,页面会崩溃。下面的代码是一个示例,演示了如何填充一个包含 10 5行的表格。

示例1:这个示例将展示如何使用简单的JavaScript代码填充一个包含 10 5行的表格。

<!DOCTYPE html> 
<html> 
  
<head> 
    <style> 
        table { 
            width: 100%; 
        } 
          
        table, 
        th, 
        td { 
            border: 1px solid black; 
            border-collapse: collapse; 
        } 
          
        th, 
        td { 
            padding: 15px; 
            text-align: left; 
        } 
          
        table#t01 tr:nth-child(even) { 
            background-color: #eee; 
        } 
          
        table#t01 tr:nth-child(odd) { 
            background-color: #fff; 
        } 
          
        table#t01 th { 
            background-color: black; 
            color: white; 
        } 
    </style> 
</head> 
  
<body> 
    <br> 
  
    <table id="t01"> 
        <tr> 
            <th>Counting</th> 
            <th>Alphabets</th> 
        </tr> 
        <script> 
            var k = 97; 
            for (var j = 1; j <= 100000; j++) { 
                if (k == 123) 
                    k = 97; 
                var string = String.fromCharCode(k); 
                document.write(" <tr><td>" + (j) + "</td><td>"  
                               + string + "</td></tr>"); 
                k++; 
            } 
        </script> 
    </table> 
  
</body> 
  
</html> 

结果:

JavaScript 如何创建可以容纳数百万行数据的数据网格

1百万行的性能

为了执行这样一个繁重的任务,我们将导入由shield UI制作的API。这是一个轻量级的用于加载大表格的API,实际上它是在我们滚动表格时实时加载表格,从而减少了浏览器在那个时间点上的负载。

现在让我们对1百万行执行相同的操作,即10 6 行。下面的代码将实时加载1百万行。

示例:

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
    <meta charset="utf-8" /> 
    <title>1 Million Rows Demo</title> 
    <link id="themecss" 
          rel="stylesheet" 
          type="text/css" 
          href= 
"//www.shieldui.com/shared/components/latest/css/light/all.min.css" /> 
    <script type="text/javascript"
            src= 
"//www.shieldui.com/shared/components/latest/js/jquery-1.11.1.min.js"> 
  </script> 
    <script type="text/javascript" 
            src= 
"//www.shieldui.com/shared/components/latest/js/shieldui-all.min.js"> 
  </script> 
</head> 
  
<body class="theme-light"> 
    <div id="grid" style="margin-bottom: -500px;"></div> 
    <script type="text/javascript"> 
        (function() { 
            var grid = new shield.DataSource({ 
                remote: { 
                    operations: ["skip", "take"], 
                    read: function(params, success, error) { 
                        var skip = grid.skip || 0, 
                            take = grid.take || 20, 
                            data = [], 
                            k = 96; 
  
                        for (var i = skip; i("#grid").shieldGrid({ 
                dataSource: grid, 
                height: 400, 
                scrolling: { 
                    virtual: true 
                }, 
                columns: (function() { 
                    var cols = []; 
  
                    cols.push({ 
                        field: "Counting", 
                        width: 140 
                    }); 
  
                    cols.push({ 
                        field: "Alphabets", 
                        width: 140 
                    }); 
                    return cols; 
                })() 
            }); 
        }); 
    </script> 
</body> 
  
</html> 

输出:

JavaScript 如何创建可以容纳数百万行数据的数据网格

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程