Преглед на файлове

HUE-9082 [frontend] Prevent the same app from initializing twice

Johan Ahlen преди 6 години
родител
ревизия
87ee9fb9d7
променени са 1 файла, в които са добавени 10 реда и са изтрити 1 реда
  1. 10 1
      desktop/core/src/desktop/js/onePageViewModel.js

+ 10 - 1
desktop/core/src/desktop/js/onePageViewModel.js

@@ -261,7 +261,16 @@ class OnePageViewModel {
       });
     });
 
-    self.loadApp = function(app, loadDeep) {
+    let loadAppTimeout = -1;
+    self.loadApp = (app, loadDeep) => {
+      // This prevents loading an app twice when the URL is changed multiple times in one operation
+      window.clearTimeout(loadAppTimeout);
+      loadAppTimeout = window.setTimeout(() => {
+        self.loadAppThrottled(app, loadDeep);
+      }, 0);
+    };
+
+    self.loadAppThrottled = (app, loadDeep) => {
       if (self.currentApp() === 'editor' && $('#editorComponents').length) {
         const vm = ko.dataFor($('#editorComponents')[0]);
         if (vm.isPresentationMode()) {