【问题标题】:What is Client & Server side DataTable processing?什么是客户端和服务器端 DataTable 处理?
【发布时间】:2017-03-12 21:54:29
【问题描述】:

我已经尝试但未能在谷歌和这里进行研究以获得对客户端和服务器端 jQuery 数据表处理的含义的基本但很好的理解。我知道客户端通常是网络浏览器,它与用户交互,服务器是 http 服务器,但仅此而已。如果有人可以帮助简要描述数据处理的两个方面?如果有例子,那就太棒了。如果没有,仍然很棒。

<table id="datatable" class="table">
    <thead>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Budget)
        ........
    </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
    ...........

<script type="text/javascript">
    $(document).ready(function () {
        $('#datatable').dataTable();
    });
</script>

那么,对于客户端处理,我需要做的仅仅是脚本代码吗?

【问题讨论】:

  • 使用 DataTables 将服务器端处理视为对服务器端数据库的多次调用。这方面的一个例子是分页。 100 条记录中的第 1 页将是一个呼叫,而接下来 100 条记录中的第 2 页将是另一个。
  • 客户端通常是在第一次请求中将整个数据集提供给客户端。分页和搜索都在客户端完成,没有对服务器的其他调用。对于浏览器而言,大型数据集通常太多,因此在这些情况下服务器端处理通常是性能要求
  • 那么,我在帖子中添加的脚本代码是否只需要客户端数据表处理?
  • 是的,这可能是 DataTables 最基本的初始化。只需确保您有指向 Datatables.min.js javascript 文件及其样式表的链接。只要表中有数据,您就应该在此表中显示所有基本的分页、过滤和排序功能:datatables.net/examples/basic_init/zero_configuration.html
  • 非常感谢您的解释。

标签: javascript asp.net-mvc jquery-plugins datatables


【解决方案1】:

请阅读有关processing modes的官方文档。

  • 客户端处理 - 预先加载完整的数据集,并在浏览器中完成数据处理(排序、过滤、分页)。

    查看this example的数据表使用客户端处理方式。

  • 服务器端处理 - 每次重绘表格都会发出 Ajax 请求,只返回每次显示所需的数据。数据处理(排序、过滤、分页)在服务器上进行。

    查看this example使用服务器端处理方式的数据表。

【讨论】:

  • 哪个更可取?
  • @TuralAsgar,客户端处理模式比服务器端处理模式更容易实现。如果您的数据集很大,在客户端处理模式下,在检索数据之前以及每次搜索或排序时都会有延迟。在这种情况下,请改用服务器端处理。
【解决方案2】:

简单来说,

客户端 - 所有数据由服务器一次发送到浏览器。之后,分页、排序等一切都由前端的 JS 处理。

服务器端 - 对每个请求进行 Ajax 调用,并且只发送特定的数据。例如,显示 10 条记录,此处进行 AJAX 调用以获取这 10 条记录,因此服务器仅发送这些记录而不是完整数据。分页、搜索、过滤等也是如此。

  • 为了获得更好的性能,服务器端数据是最好的解决方案(对于巨大的 数据)。

  • 客户端最适合较少的数据

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多