From 07ac27e07bf7501ae6ec0c29d87203803ac29381 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Fri, 27 Oct 2023 21:09:49 -0400 Subject: [PATCH] Give precedence to `Last modified:` field when evaluating "age" if lists Available network information is not very reliable and should be used only when `Last modified:` is not available. --- src/js/assets.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/js/assets.js b/src/js/assets.js index e07d1c3aa..73fec016c 100644 --- a/src/js/assets.js +++ b/src/js/assets.js @@ -56,11 +56,13 @@ const resourceTimeFromXhr = xhr => { // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Date let networkTime = 0; - const age = parseInt(xhr.getResponseHeader('Age'), 10); - if ( isNaN(age) === false ) { - const time = (new Date(xhr.getResponseHeader('Date'))).getTime(); - if ( isNaN(time) === false ) { - networkTime = time - age * 1000; + if ( assetTime === 0 ) { + const age = parseInt(xhr.getResponseHeader('Age'), 10); + if ( isNaN(age) === false ) { + const time = (new Date(xhr.getResponseHeader('Date'))).getTime(); + if ( isNaN(time) === false ) { + networkTime = time - age * 1000; + } } } return Math.max(assetTime, networkTime, 0);