From 4dd41c486f8828777e0cc7bcdabd29210443b5ca Mon Sep 17 00:00:00 2001 From: CaCO3 Date: Sun, 12 Mar 2023 21:30:23 +0100 Subject: [PATCH] restart timeout on progress, catch error (#2170) * restart timeout on progress, catch error * . --------- Co-authored-by: CaCO3 --- sd-card/html/backup.html | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/sd-card/html/backup.html b/sd-card/html/backup.html index 260354d9..c55c3d3d 100644 --- a/sd-card/html/backup.html +++ b/sd-card/html/backup.html @@ -122,13 +122,13 @@ function fetchFiles(urls, filesData, index, retry, zipFilename) { xhr.timeout = 5000; // time in milliseconds } else if (retry == 2) { // longer timeout - xhr.timeout = 20000; // time in milliseconds + xhr.timeout = 10000; // time in milliseconds } else if (retry == 3) { // longer timeout - xhr.timeout = 30000; // time in milliseconds + xhr.timeout = 20000; // time in milliseconds } else { // very long timeout - xhr.timeout = 60000; // time in milliseconds + xhr.timeout = 30000; // time in milliseconds } xhr.onload = () => { // Request finished @@ -146,6 +146,20 @@ function fetchFiles(urls, filesData, index, retry, zipFilename) { } }; + xhr.onprogress = (e) => { // XMLHttpRequest progress ... extend timeout + xhr.timeout = xhr.timeout + 500; + }; + + xhr.onerror = (e) => { // XMLHttpRequest error loading + console.log("Error on fetching " + url + "!"); + if (retry > 5) { + setStatus("Backup failed, please restart the device and try again!"); + } + else { + fetchFiles(urls, filesData, index, retry+1, zipFilename); + } + }; + xhr.ontimeout = (e) => { // XMLHttpRequest timed out console.log("Timeout on fetching " + url + "!"); if (retry > 5) {