From: Dominik Csapak Date: Wed, 29 Nov 2017 10:39:17 +0000 (+0100) Subject: remove updatequeue X-Git-Url: https://git.proxmox.com/?p=proxmox-widget-toolkit.git;a=commitdiff_plain;h=ff5351f775cb3877ff5e2d675ffdcd7cd9c93e4c 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 --- 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); } });