feat(更新提醒): 修复更新提醒漏检
build.yaml / build (push) Successful in 42s

This commit is contained in:
xiaoqidun committed 2026-10-17 22:34:05 +08:00
1 parent 829d59e652
commit 7a39cb3d29
1 file changed
+11 -1
+11 -1
View File
@@ -4169,6 +4169,7 @@ async function prepareOffline() {
return true;
}
setProgress("正在准备离线", null, "正在准备离线");
let checksum;
try {
const registration = await registerOffline();
const result = await requestOffline(registration.active, "prepare");
@@ -4179,9 +4180,10 @@ async function prepareOffline() {
if (navigator.storage?.persist) {
navigator.storage.persist().catch(() => false);
}
watchApplicationUpdates(result.checksum);
checksum = result.checksum;
} catch {
}
watchApplicationUpdates(checksum);
el.refreshAppButton.disabled = false;
return true;
}
@@ -4196,6 +4198,13 @@ function watchApplicationUpdates(checksum) {
checking = true;
checked = Date.now();
try {
if (!checksum) {
if (!navigator.serviceWorker.controller) return;
const current = await fetch("./ofdgo.js", { signal: AbortSignal.timeout(10000) });
if (current.ok && !current.redirected) checksum = current.headers.get("X-OFDGo-Checksum");
await current.body?.cancel();
if (!checksum) return;
}
const response = await fetch("./", { method: "HEAD", cache: "no-store", signal: AbortSignal.timeout(10000) });
const latest = response.headers.get("X-OFDGo-Checksum");
if (response.ok && !response.redirected && latest) {
@@ -4207,6 +4216,7 @@ function watchApplicationUpdates(checksum) {
}
}
window.addEventListener("online", check);
window.addEventListener("focus", check);
document.addEventListener("visibilitychange", check);
window.setInterval(check, 300000);
check();