Browse Source

HUE-5823 [editor] Cancel running doc search requests when the query has changed

Johan Ahlen 8 năm trước cách đây
mục cha
commit
054e32420a

+ 4 - 1
desktop/core/src/desktop/static/desktop/js/apiHelper.js

@@ -239,6 +239,9 @@ var ApiHelper = (function () {
    */
   ApiHelper.prototype.assistErrorCallback = function (options) {
     return function (errorResponse) {
+      if (typeof errorResponse.statusText !== 'undefined' && errorResponse.statusText === 'abort') {
+        return;
+      }
       var errorMessage = 'Unknown error occurred';
       if (errorResponse !== 'undefined') {
         if (typeof errorResponse.responseText !== 'undefined') {
@@ -611,7 +614,7 @@ var ApiHelper = (function () {
    */
   ApiHelper.prototype.searchDocuments = function (options) {
     var self = this;
-    $.ajax({
+    return $.ajax({
       url: DOCUMENTS_SEARCH_API,
       data: {
         uuid: options.uuid,

+ 7 - 4
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -369,15 +369,18 @@ var EditorViewModel = (function() {
       self.fetchQueries();
     });
 
+    var lastFetchQueriesRequest = null;
+
     self.fetchQueries = function () {
-      var QUERIES_PER_PAGE = 50;
-      if (self.loadingQueries()) {
-        return;
+      if (lastFetchQueriesRequest !== null && lastFetchQueriesRequest.readyState < 4) {
+        lastFetchQueriesRequest.abort();
       }
+
+      var QUERIES_PER_PAGE = 50;
       lastQueriesPage = self.queriesCurrentPage();
       self.loadingQueries(true);
       self.queriesHasErrors(false);
-      self.getApiHelper().searchDocuments({
+      lastFetchQueriesRequest = self.getApiHelper().searchDocuments({
         successCallback: function (result) {
           self.queriesTotalPages(Math.ceil(result.count / QUERIES_PER_PAGE));
           self.queries(result.documents);