【问题标题】:JQuery datatables and slowing data displayJQuery 数据表和缓慢的数据显示
【发布时间】:2013-10-07 09:50:56
【问题描述】:

我正在使用 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 条记录,那么它不会使页面变慢。我说的对吗?

最佳

【问题讨论】:

    标签: php jquery datatables


    【解决方案1】:

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

    数据表有两种工作方式:

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

    【讨论】:

    • 这是非常有用的信息,但根据你的说法,我的同事是对的!你对@Somy A 有什么建议?
    • 这取决于您的需求,如果您有大量数据(可能是数千行数据),我更喜欢服务器端处理。 MySQL 或其他数据库引擎在排序和限制记录技术方面具有更先进和更高效的能力。但是,如果您只有有限的数据(数百个),我认为使用客户端处理就足够了,在这种情况下,您不需要编写服务器端处理代码。有关服务器端处理,请参阅此页面:datatables.net/examples/data_sources/server_side.html
    【解决方案2】:

    请查看here

    如果您想进行服务器端处理,请单击here

    有很多方法可以将数据放入 DataTables,如果您正在处理大型数据库,您可能需要考虑使用 DataTables 提供的服务器端选项。基本上,DataTables 所做的所有分页、过滤、排序等操作都可以交给服务器(或任何其他数据源——例如 Google Gears 或 Adob​​e Air!),而 DataTables 只是一个事件和显示模块。

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

    【讨论】:

    • 虽然这些链接可能会回答问题,但您应该避免仅链接的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多