JQuery 数据表和缓慢的数据显示


JQuery datatables and slowing data display

我正在使用JQuery数据表来显示数据库中存在的所有项目:

<script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
        $('table.display').dataTable({
            "bJQueryUI": true,
             "sPaginationType": "two_button",
             "aaSorting":[[2, "desc"]],
             "bRetrieve": true,
              "iDisplayLength": 10, // 10 records will be displayed by default
              "sScrollY": "250px",
              "sDom": '<"H"Tfr>t<"F"ip>',
              "oTableTools": {
                  "sRowSelect": "multi",
                  "aButtons": [
                      "copy", 
                      {
                          "sExtends": "csv",
                          "sTitle": "data"
                      }                     
                  ]
               }
        });
    })
</script>

如果记录超过 10 条,则可以使用按钮移动到接下来的 10 条记录。

问题是我的一位同事告诉我,如果我们有大量的项目,这可能会使页面非常慢。我不确定这一点,因为如果我选择显示 10 条记录,那么它不会使页面变慢。我说的对吗?

最佳

如果记录超过 10 条

,可以使用按钮移动到接下来的 10 条记录?是的,绝对。

数据表以两种方式工作:

  1. 客户端,这意味着所有数据将完全下载和分页(通过数据表自动,例如:每页 10 条记录)。这样,如果您有大量数据,页面会很慢
  2. 服务器
  3. 端,这种方式数据表只下载请求的数据,所以每次下一页/上一页都会向服务器请求。这样你必须有服务器端代码来手动分页数据(当然它必须与来自datatable的请求兼容)。

请看这里。

如果要进行服务器端处理,请单击此处。

有许多

方法可以将数据放入数据表中,如果您正在使用非常大的数据库,则可能需要考虑使用 DataTable 提供的服务器端选项。基本上,DataTables所做的所有分页,过滤,排序等都可以移交给服务器(或任何其他数据源 - 例如Google Gears或Adobe Air!),而DataTables只是一个事件和显示模块。

$(document).ready(function() {
    $('#example').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "../examples_support/server_processing.php"
    } );
} );