Browse Source

Provide a option to cancel previous request.

pull/8160/head
maliming 5 years ago
parent
commit
44e9ef0ea9
  1. 12
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js

12
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js

@ -325,7 +325,7 @@ var abp = abp || {};
* AJAX extension for datatables *
*************************************************************************/
(function () {
datatables.createAjax = function (serverMethod, inputAction, responseCallback) {
datatables.createAjax = function (serverMethod, inputAction, responseCallback, cancelPreviousRequest) {
responseCallback = responseCallback || function(result) {
return {
recordsTotal: result.totalCount,
@ -333,10 +333,11 @@ var abp = abp || {};
data: result.items
};
}
var promise = null;
return function (requestData, callback, settings) {
var input = typeof inputAction === 'function'
? inputAction(requestData, settings)
: typeof inputAction === 'object'
: (typeof inputAction === 'object' && inputAction)
? inputAction : {};
//Paging
@ -368,7 +369,12 @@ var abp = abp || {};
}
if (callback) {
serverMethod(input).then(function (result) {
if(cancelPreviousRequest && promise && promise.jqXHR) {
promise.jqXHR.abort();
}
promise = serverMethod(input);
promise.then(function (result) {
promise = null;
callback(responseCallback(result));
});
}

Loading…
Cancel
Save