diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js
index 9f211db83..8f2feb37b 100644
--- a/src/webui/www/private/scripts/client.js
+++ b/src/webui/www/private/scripts/client.js
@@ -41,6 +41,7 @@ var queueing_enabled = true;
var serverSyncMainDataInterval = 1500;
var customSyncMainDataInterval = null;
+let syncRequestInProgress = false;
var clipboardEvent;
var CATEGORIES_ALL = 1;
@@ -334,7 +335,7 @@ window.addEvent('load', function() {
var syncMainData = function() {
var url = new URI('api/v2/sync/maindata');
url.setData('rid', syncMainDataLastResponseId);
- new Request.JSON({
+ const request = new Request.JSON({
url: url,
noCache: true,
method: 'get',
@@ -342,8 +343,8 @@ window.addEvent('load', function() {
var errorDiv = $('error_div');
if (errorDiv)
errorDiv.set('html', 'QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]');
- clearTimeout(syncMainDataTimer);
- syncMainDataTimer = syncMainData.delay(2000);
+ syncRequestInProgress = false;
+ syncData(2000);
},
onSuccess: function(response) {
$('error_div').set('html', '');
@@ -426,18 +427,26 @@ window.addEvent('load', function() {
// re-select previously selected rows
torrentsTable.reselectRows(torrentsTableSelectedRows);
}
- clearTimeout(syncMainDataTimer);
- syncMainDataTimer = syncMainData.delay(getSyncMainDataInterval());
+ syncRequestInProgress = false;
+ syncData(getSyncMainDataInterval())
}
- }).send();
+ });
+ syncRequestInProgress = true;
+ request.send();
};
updateMainData = function() {
torrentsTable.updateTable();
- clearTimeout(syncMainDataTimer);
- syncMainDataTimer = syncMainData.delay(100);
+ syncData(100);
};
+ const syncData = function(delay) {
+ if (!syncRequestInProgress){
+ clearTimeout(syncMainDataTimer);
+ syncMainDataTimer = syncMainData.delay(delay);
+ }
+ }
+
var processServerState = function() {
var transfer_info = friendlyUnit(serverState.dl_info_speed, true);
if (serverState.dl_rate_limit > 0)
@@ -459,7 +468,7 @@ window.addEvent('load', function() {
$('DHTNodes').set('html', 'QBT_TR(DHT: %1 nodes)QBT_TR[CONTEXT=StatusBar]'.replace("%1", serverState.dht_nodes));
// Statistics dialog
- if (document.getElementById("statisticspage")) {
+ if (document.getElementById("statisticsContent")) {
$('AlltimeDL').set('html', friendlyUnit(serverState.alltime_dl, false));
$('AlltimeUL').set('html', friendlyUnit(serverState.alltime_ul, false));
$('TotalWastedSession').set('html', friendlyUnit(serverState.total_wasted_session, false));
@@ -607,8 +616,7 @@ window.addEvent('load', function() {
$("mainColumn").removeClass("invisible");
customSyncMainDataInterval = null;
- clearTimeout(syncMainDataTimer);
- syncMainDataTimer = syncMainData.delay(100);
+ syncData(100);
hideSearchTab();
};
diff --git a/src/webui/www/private/statistics.html b/src/webui/www/private/statistics.html
index 580ef495e..dffd3ecc9 100644
--- a/src/webui/www/private/statistics.html
+++ b/src/webui/www/private/statistics.html
@@ -1,59 +1,59 @@
-
QBT_TR(User statistics)QBT_TR[CONTEXT=StatsDialog]
-
-
- QBT_TR(All-time upload:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(All-time download:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(All-time share ratio:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Session waste:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Connected peers:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
-
-QBT_TR(Cache statistics)QBT_TR[CONTEXT=StatsDialog]
-
-
- QBT_TR(Read cache hits:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Total buffer size:)QBT_TR[CONTEXT=StatsDialog] |
-
-
-
-
-QBT_TR(Performance statistics)QBT_TR[CONTEXT=StatsDialog]
-
-
- QBT_TR(Write cache overload:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Read cache overload:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Queued I/O jobs:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Average time in queue:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
- QBT_TR(Total queued size:)QBT_TR[CONTEXT=StatsDialog] |
- |
-
-
+
+
QBT_TR(User statistics)QBT_TR[CONTEXT=StatsDialog]
+
+
+ QBT_TR(All-time upload:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(All-time download:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(All-time share ratio:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Session waste:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Connected peers:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+
QBT_TR(Cache statistics)QBT_TR[CONTEXT=StatsDialog]
+
+
+ QBT_TR(Read cache hits:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Total buffer size:)QBT_TR[CONTEXT=StatsDialog] |
+
+
+
+
QBT_TR(Performance statistics)QBT_TR[CONTEXT=StatsDialog]
+
+
+ QBT_TR(Write cache overload:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Read cache overload:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Queued I/O jobs:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Average time in queue:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+ QBT_TR(Total queued size:)QBT_TR[CONTEXT=StatsDialog] |
+ |
+
+
+