数据表生成多个服务器端请求(dataTables generating multiple serve

2019-10-17 20:12发布

我使用的dataTable启用服务器端处理的jQuery插件。 当使用fnReloadAjax功能,有2-3秒的处理股利隐藏和显示新的数据之间的延迟。 这里是一个岗位关于这一问题。 我发现,这是由于数据表中由多个服务器的请求。

在我的网页onchange一组单选按钮的事件正在为新的数据服务器的呼叫如下

oTable.fnReloadAjax("getCaseList?caseStatus=xxx&showValidOnly=true");

在Firebug控制台我看到对方一前一后两个请求

  1. GET https://localhost/getCaseList?caseStatus=xxx&showValidOnly=true&_=1363611652185
  2. GET https://localhost/getCaseList?caseStatus=xxx&showValidOnly=true&sEcho=4&iColumns=9&sColumns=&iDisplayStart=0&iDisplayLength=100&sSearch=&bRegex=false&sSearch_0=&bRegex_0=false&bSearchable_0=true&sSearch_1=&bRegex_1=false&bSearchable_1=true&sSearch_2=&bRegex_2=false&bSearchable_2=true&sSearch_3=&bRegex_3=false&bSearchable_3=true&sSearch_4=&bRegex_4=false&bSearchable_4=true&sSearch_5=&bRegex_5=false&bSearchable_5=true&sSearch_6=&bRegex_6=false&bSearchable_6=true&sSearch_7=&bRegex_7=false&bSearchable_7=true&sSearch_8=&bRegex_8=false&bSearchable_8=true&iSortingCols=1&iSortCol_0=4&sSortDir_0=desc&bSortable_0=false&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true&bSortable_6=true&bSortable_7=true&bSortable_8=true&_=1363611701804

第一个请求完成后的处理DIV是越来越隐蔽,但新的数据被加载后,才第二次请求完成。

为什么数据表制作是第二额外调用?

Answer 1:

我已经运行到了同样的问题。 在我的情况我也一直在使用服务器端处理。 数据表被初始化之后,我写了下面的语句来隐藏某些列

tableExample.fnSetColumnVis(5, false);
tableExample.fnSetColumnVis(6, false);
tableExample.fnSetColumnVis(3, false);

我意识到这是请求的4倍。 然后,我删除这些行和多个请求的问题,在我的案件告破。 如何过,如果你想仍然隐藏列,存在通过添加类(“的sclass”:“隐藏”),另一种方法用于设置“显示:无”,以在数据表中的列定义的列。

  aoColumnDefs: [
        { "bSortable": true, "aTargets": [0] },
        { "bSortable": true, "aTargets": [1] },
        { "bSortable": false, "aTargets": [2] },
        { "bSortable": true, "aTargets": [3] },
        { "bSortable": true, "aTargets": [4] },
       { "bSortable": true, "aTargets": [5], "sClass": "hidden" },
        { "bSortable": true, "aTargets": [6], "sClass": "hidden" },
        { "bSortable": false, "aTargets": [7] },
        { "bSortable": false, "aTargets": [8] },
        { "bSortable": false, "aTargets": [9], "sClass": "hidden" }         

      ]

希望这可以帮助。 谢谢



Answer 2:

服务器端请求由内部发出_fnAjaxUpdate功能,这是从所谓的_fnDraw

这意味着你可能调用一些需要重新绘制的表格,如排序或搜索,这发出一个额外的请求方法。



文章来源: dataTables generating multiple server side requests