From ff5351f775cb3877ff5e2d675ffdcd7cd9c93e4c Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 29 Nov 2017 11:39:17 +0100 Subject: [PATCH] remove updatequeue 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 --- Makefile | 1 - data/UpdateQueue.js | 67 --------------------------------------------- data/UpdateStore.js | 8 +++--- 3 files changed, 4 insertions(+), 72 deletions(-) delete mode 100644 data/UpdateQueue.js diff --git a/Makefile b/Makefile index 440eea1..bc42c39 100644 --- 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 index 19bd3df..0000000 --- a/data/UpdateQueue.js +++ /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; - } - } - }); - } -}); diff --git a/data/UpdateStore.js b/data/UpdateStore.js index 482781c..b974c70 100644 --- a/data/UpdateStore.js +++ b/data/UpdateStore.js @@ -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); } }); -- 2.39.5