Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由于记录量巨大,网页加载滞后很多_Javascript_Jquery_Html_Node.js_Pagination - Fatal编程技术网

Javascript 由于记录量巨大,网页加载滞后很多

Javascript 由于记录量巨大,网页加载滞后很多,javascript,jquery,html,node.js,pagination,Javascript,Jquery,Html,Node.js,Pagination,HTML: <div id="table-wrapper"> <div id="table-scroll"> <div id="loading"></div> <table id="results" class="hidden" cellspacing=10px> <thead> <tr class = "spacing">

HTML:

<div id="table-wrapper"> 
    <div id="table-scroll">
    <div id="loading"></div>
    <table id="results" class="hidden" cellspacing=10px>
        <thead>
            <tr class = "spacing">
                <th class='headers'>Index No</th>
                <th class='headers'>SAM ID</th>
                <th class='headers'>Item Description</th>
                <th class='headers'>Type</th>
                <th class='headers'>Inventory Status</th>
                <th class='headers'>Issued QTY</th>
                <th class='headers'>Opening QTY</th>
                <th class='headers'>Closing QTY</th>
                <th class='headers'>Corrupted QTY</th>
                <th class='headers'>Date In</th>
                <th class='headers'>Date Out</th>
                <th class='headers'>Remarks</th>
                <th class='headers'>NTA SAM Reference No.</th>
            </tr>
        </thead>
        <tbody id="bResults"></tbody>
    </table>
    </div>
    </div>
$(document).ajaxStart(function() {
   $("#loading").show();
});

$(document).ajaxComplete(function() {
   $("#loading").hide();
});

$(".navbar-search").one('click', function(){
$.ajax({
    url: "http://localhost:3000/api/queryAllRecord", // server url
    type: "POST", //POST or GET
    contentType: "application/json",
     // data to send in ajax format or querystring format
    dataType : "JSON", 
    success: function(response) {
         if(response){
            var len = response.length;
            var txt = "";
            if(len > 0){
                for(var i=0;i<len;i++){
                    if(response[i].samID){
                        txt += "<tr class='rowdata'>"+"<td 
                                 class='editNumber'></td>"
                                +"<td class='searchSam 
                                 editNumber'>"+response[i].samID+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].itemDescription +"</td>"
                                +"<td class='editNumber'>"
                                +response[i].Type+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].InventoryStatus
                                +"</td>"+"<td class='editNumber'>"
                                +response[i].issuedQTY + "</td>"
                                +"<td class='editNumber'>"
                                +response[i].openingQTY + "</td>"
                                +"<td class='editNumber'>" 
                                +response[i].closingQTY+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].corruptedQTY+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].dateIn+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].dateOut+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].Remarks+"</td>"
                                +"<td class='searchNta editNumber'>"
                                +response[i].ntaRequestRef+"</td>"
                                +"<td><button class='input button-edit' 
                                type='submit' id='edit' 
                                onclick = 'edit(this)'>Edit</button></td>" 
                                +"<td><input class='input button-delete' 
                                type='button' id='delete' value='Delete' 
                                onclick='deleteResult(this)' /></td>"+"
                                </tr>";
                    }
                }

                $("#bResults").empty();
                if(txt != ""){
                    $("#results").removeClass("hidden");
                    $("#bResults").append(txt);
                }
            }
        }
    },
    error: function(response) {
        alert('error');
    }
    });
event.preventDefault();
});
function test(pageNumber)
{
 var page="#page-id-"+pageNumber;
  $('.select').hide()
  $(page).show()
}
$(function() {
$('#nice').pagination({
    items: 14000,
    itemsOnPage: 100,
    cssStyle: 'light-theme',
    onPageClick: function(pageNumber){test(pageNumber)}
});
});

索引号
山姆ID
项目说明
类型
库存状况
发出数量
期初数量
期末数量
损坏数量
约会
注明日期
评论
NTA SAM参考号。
JS:

<div id="table-wrapper"> 
    <div id="table-scroll">
    <div id="loading"></div>
    <table id="results" class="hidden" cellspacing=10px>
        <thead>
            <tr class = "spacing">
                <th class='headers'>Index No</th>
                <th class='headers'>SAM ID</th>
                <th class='headers'>Item Description</th>
                <th class='headers'>Type</th>
                <th class='headers'>Inventory Status</th>
                <th class='headers'>Issued QTY</th>
                <th class='headers'>Opening QTY</th>
                <th class='headers'>Closing QTY</th>
                <th class='headers'>Corrupted QTY</th>
                <th class='headers'>Date In</th>
                <th class='headers'>Date Out</th>
                <th class='headers'>Remarks</th>
                <th class='headers'>NTA SAM Reference No.</th>
            </tr>
        </thead>
        <tbody id="bResults"></tbody>
    </table>
    </div>
    </div>
$(document).ajaxStart(function() {
   $("#loading").show();
});

$(document).ajaxComplete(function() {
   $("#loading").hide();
});

$(".navbar-search").one('click', function(){
$.ajax({
    url: "http://localhost:3000/api/queryAllRecord", // server url
    type: "POST", //POST or GET
    contentType: "application/json",
     // data to send in ajax format or querystring format
    dataType : "JSON", 
    success: function(response) {
         if(response){
            var len = response.length;
            var txt = "";
            if(len > 0){
                for(var i=0;i<len;i++){
                    if(response[i].samID){
                        txt += "<tr class='rowdata'>"+"<td 
                                 class='editNumber'></td>"
                                +"<td class='searchSam 
                                 editNumber'>"+response[i].samID+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].itemDescription +"</td>"
                                +"<td class='editNumber'>"
                                +response[i].Type+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].InventoryStatus
                                +"</td>"+"<td class='editNumber'>"
                                +response[i].issuedQTY + "</td>"
                                +"<td class='editNumber'>"
                                +response[i].openingQTY + "</td>"
                                +"<td class='editNumber'>" 
                                +response[i].closingQTY+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].corruptedQTY+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].dateIn+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].dateOut+"</td>"
                                +"<td class='editNumber'>"
                                +response[i].Remarks+"</td>"
                                +"<td class='searchNta editNumber'>"
                                +response[i].ntaRequestRef+"</td>"
                                +"<td><button class='input button-edit' 
                                type='submit' id='edit' 
                                onclick = 'edit(this)'>Edit</button></td>" 
                                +"<td><input class='input button-delete' 
                                type='button' id='delete' value='Delete' 
                                onclick='deleteResult(this)' /></td>"+"
                                </tr>";
                    }
                }

                $("#bResults").empty();
                if(txt != ""){
                    $("#results").removeClass("hidden");
                    $("#bResults").append(txt);
                }
            }
        }
    },
    error: function(response) {
        alert('error');
    }
    });
event.preventDefault();
});
function test(pageNumber)
{
 var page="#page-id-"+pageNumber;
  $('.select').hide()
  $(page).show()
}
$(function() {
$('#nice').pagination({
    items: 14000,
    itemsOnPage: 100,
    cssStyle: 'light-theme',
    onPageClick: function(pageNumber){test(pageNumber)}
});
});
$(文档).ajaxStart(函数(){
$(“#加载”).show();
});
$(文档).ajaxComplete(函数(){
$(“#加载”).hide();
});
$(“.navbar搜索”).one('click',function(){
$.ajax({
url:“http://localhost:3000/api/queryAllRecord“,//服务器url
键入:“POST”、//POST或GET
contentType:“应用程序/json”,
//要以ajax格式或querystring格式发送的数据
数据类型:“JSON”,
成功:功能(响应){
如果(答复){
var len=响应长度;
var txt=“”;
如果(len>0){

对于(var i=0;i分页,您说过,尝试一次加载较少的数据量。无论如何,您不能一次在浏览器中显示13000条记录。我通常一次只加载可以在浏览器中显示的数据。希望有帮助

  • 关于分页,您是对的。这似乎是减少加载时间和保持页面长度短的合乎逻辑的做法

  • 在向下滚动页面并继续打印新条目时,可以使用限制和偏移请求数据

  • 您可以一次请求条目,但您可以绘制有限的条目,并在向下滚动时绘制下一组。这种方式可以轻松地呈现数据,并且不会在页面和加载时间上增加很多负载


  • 对于这种情况,我强烈推荐

    Datatables允许您完全按照此处的要求进行操作,另外还有实现分页和一些其他有用的实用程序

    具体来说,Datatables的功能可以帮助您解决此问题。本质上,它允许您查询非常大的数据集(从存储数据的位置),但一次只能将其中可管理的部分加载到DOM中;同样,它可以自动为您处理加载/卸载和分页设置

    这是一个很好的教程,介绍了如何在PHP后端脚本中使用此功能