代码概述
该自动更新脚本用于在页面加载后定期检查新版本的脚本,并在发现新版本时提示用户刷新页面。以下是各个模块的详细分析:
设置更新检查间隔
const CHECK_INTERVAL = 10 * 1000; // 每10秒检查一次更新
该常量定义了更新检查的间隔时间,单位为毫秒。在此脚本中,每10秒检查一次更新。
记录页面状态
let isPageHidden = false; // 页面是否隐藏
此变量用于记录页面是否处于隐藏状态,以避免在页面不可见时进行不必要的更新检查。
定时器ID和更新提示控制
let updateTimerId = null; // 定时器ID
let shouldShowUpdatePrompt = true; // 是否需要提示用户更新
updateTimerId
用于存储定时器的ID,以便在需要时停止定时器。shouldShowUpdatePrompt
用于控制是否需要提示用户更新。
脚本标签存储
let oldScripts = []; // 旧的脚本标签数组
let newScripts = []; // 新的脚本标签数组
这些数组分别用于存储旧的和新的脚本标签,以便进行比较。
获取HTML内容
async function fetchHtml() {
try {
const response = await fetch('/');
if (!response.ok) {
throw new Error('Failed to fetch HTML');
}
return response.text(