(function() { var CHECK_INTERVAL = 60000; // 每60秒检查一次 var STORAGE_KEY = 'app_version_cache'; function getStoredVersion() { try { return localStorage.getItem(STORAGE_KEY) || ''; } catch(e) { return ''; } } function setStoredVersion(v) { try { localStorage.setItem(STORAGE_KEY, v); } catch(e) {} } function checkVersion() { var prefix = (typeof SITE_PREFIX !== 'undefined' && SITE_PREFIX) ? SITE_PREFIX : ''; fetch(prefix + '/api/version.php?_=' + Date.now(), { cache: 'no-store' }) .then(function(r) { return r.json(); }) .then(function(d) { if (!d.success) return; var serverVersion = d.version; var localVersion = getStoredVersion(); if (!localVersion) { setStoredVersion(serverVersion); return; } if (localVersion !== serverVersion) { setStoredVersion(serverVersion); // 清除缓存并强制刷新获取最新资源 var url = window.location.href.replace(/[?&]_cv=\d+/, ''); var sep = url.indexOf('?') > -1 ? '&' : '?'; window.location.href = url + sep + '_cv=' + Date.now(); } }) .catch(function() {}); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { checkVersion(); setInterval(checkVersion, CHECK_INTERVAL); }); } else { checkVersion(); setInterval(checkVersion, CHECK_INTERVAL); } })();