]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
remove updatequeue
authorDominik Csapak <d.csapak@proxmox.com>
Wed, 29 Nov 2017 10:39:17 +0000 (11:39 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 29 Nov 2017 11:04:31 +0000 (12:04 +0100)
since all modern browsers can properly handle multiple
xmlhttprequests, we do not need to serialize them ourselves, but
leave it to the browser

this fixes an issue wehre a canceled request of an updatestore
blocks all other updatestores until refresh

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Makefile
data/UpdateQueue.js [deleted file]
data/UpdateStore.js

index 440eea1ecc01001fff2cc7b59d703807aa331161..bc42c39c28bfb1929a59cdd2fb2f6f20882f61a5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,6 @@ JSSRC=                                        \
        mixin/CBind.js                  \
        data/reader/JsonObject.js       \
        data/ProxmoxProxy.js            \
-       data/UpdateQueue.js             \
        data/UpdateStore.js             \
        data/DiffStore.js               \
        data/ObjectStore.js             \
diff --git a/data/UpdateQueue.js b/data/UpdateQueue.js
deleted file mode 100644 (file)
index 19bd3df..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// Serialize load (avoid too many parallel connections)
-Ext.define('Proxmox.data.UpdateQueue', {
-    singleton: true,
-
-    constructor : function(){
-        var me = this;
-
-       var queue = [];
-       var queue_idx = {};
-
-       var idle = true;
-
-       var start_update = function() {
-           if (!idle) {
-               return;
-           }
-
-           var storeid = queue.shift();
-           if (!storeid) {
-               return;
-           }
-           var info = queue_idx[storeid];
-           queue_idx[storeid] = null;
-
-           info.updatestart = new Date();
-
-           idle = false;
-           info.store.load({
-               callback: function(records, operation, success) {
-                   idle = true;
-                   if (info.callback) {
-                       var runtime = (new Date()).getTime() - info.updatestart.getTime();
-                       info.callback(runtime, success);
-                   }
-                   start_update();
-               }
-           });
-       };
-
-       Ext.apply(me, {
-           queue: function(store, cb) {
-               var storeid = store.storeid;
-               if (!storeid) {
-                   throw "unable to queue store without storeid";
-               }
-               if (!queue_idx[storeid]) {
-                   queue_idx[storeid] = {
-                       store: store,
-                       callback: cb
-                   };
-                   queue.push(storeid);
-               }
-               start_update();
-           },
-           unqueue: function(store) {
-               var storeid = store.storeid;
-               if (!storeid) {
-                   throw "unabel to unqueue store without storeid";
-               }
-               if (queue_idx[storeid]) {
-                   Ext.Array.remove(queue,storeid);
-                   queue_idx[storeid] = null;
-               }
-           }
-       });
-    }
-});
index 482781c90fb3c47043a2a3523efe69e44fd8880e..b974c70e27a30d634b71cc4dcd564210b2f3d4c3 100644 (file)
@@ -17,8 +17,7 @@ Ext.define('Proxmox.data.UpdateStore', {
 
     destroy: function() {
        var me = this;
-       me.load_task.cancel();
-       Proxmox.data.UpdateQueue.unqueue(me);
+       me.stopUpdate();
        me.callParent();
     },
 
@@ -43,7 +42,9 @@ Ext.define('Proxmox.data.UpdateStore', {
            }
 
            if (Proxmox.Utils.authOK()) {
-               Proxmox.data.UpdateQueue.queue(me, function(runtime, success) {
+               var start = new Date();
+               me.load(function() {
+                   var runtime = (new Date()) - start;
                    var interval = config.interval + runtime*2;
                    load_task.delay(interval, run_load_task);
                });
@@ -61,7 +62,6 @@ Ext.define('Proxmox.data.UpdateStore', {
            stopUpdate: function() {
                me.isStopped = true;
                load_task.cancel();
-               Proxmox.data.UpdateQueue.unqueue(me);
            }
        });