在服务器端分页上防止来自 jquery 数据表的多个 ajax 调用

Posted

技术标签:

【中文标题】在服务器端分页上防止来自 jquery 数据表的多个 ajax 调用【英文标题】:Prevent multiple ajax calls from jquery datatable on server side pagination 【发布时间】:2019-04-16 11:40:58 【问题描述】:

我有一个 jquery dataTable,它使用 ajax 向 MVC 控制器发送请求并显示数据。 它适用于客户端处理,但响应时间太慢,因为它检索所有记录。

为了使其更快,需要服务器端分页。 服务器端分页的问题是在 jquery 数据表中将服务器端分页设置为 true 会发出多个 ajax 请求。

我一直在调试它,但无法解决导致多个 ajax 请求的问题。我在 google 上实现了许多不同的方法,但没有任何效果。

如何使用服务器端分页使其工作? 如何防止多个 ajax 调用? (表在 document.ready() 下初始化)

document.ready(function() 

            $("#myTable").DataTable(
            "processing": true, // for show progress bar
            "serverSide": true, // for process server side
            "orderMulti": false, // for disable multiple column at once
            "ajax": 
                "url": "/home/LoadData",
                "type": "Get",
                "datatype": "json"
                "data": date:'date',// parameter on controller to filter records 
            ,
            "columns": [
                     "data": "ContactName", "name": "ContactName", "autoWidth": true ,
                     "data": "CompanyName", "name": "CompanyName", "autoWidth": true ,
                     "data": "Phone", "name": "Phone", "autoWidth": true ,
                     "data": "Country", "name": "Country", "autoWidth": true ,
                     "data": "City", "name": "City", "autoWidth": true ,
                     "data": "PostalCode", "name": "PostalCode", "autoWidth": true 
            ]
        );

第一次调用返回的数据正是我想要的,但多次请求会使情况变得更糟。

【问题讨论】:

一些代码怎么样? 默认情况下,单独的分页不会在页面更改时发出多个 AJAX 请求。如果不按照@Katie.Sun 的建议查看您的代码,我们将无法真正帮助您 @Katie.Sun 查看代码 这些 ajax 请求何时触发? 【参考方案1】:

我在 ajax 成功方法上将数据添加到表中,即使我已经为它定义了列定义。 去掉success方法解决了问题。

【讨论】:

以上是关于在服务器端分页上防止来自 jquery 数据表的多个 ajax 调用的主要内容,如果未能解决你的问题,请参考以下文章

手机端分页上拉下拉动画样式

JQuery DataTables 服务器端分页

jquery数据表服务器端分页不起作用

使用 Jquery 获取服务器端分页

带有后端分页的 jQuery 数据表

围绕DataTable';允许在Rails应用程序中与服务器端分页同步的ajax方法