在服务器端分页上防止来自 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 调用的主要内容,如果未能解决你的问题,请参考以下文章