使用Service Worker实现离线访问和资源缓存
此页面使用Service Worker缓存了所有必要资源。您可以尝试以下操作:
测试步骤:
即使没有网络连接,用户仍然可以访问您网站的核心内容
缓存的资源直接从本地加载,大幅提升页面加载速度
在网络恢复时自动同步数据,提供无缝体验
注册Service Worker:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js')
.then(reg => console.log('SW 已注册'))
.catch(err => console.log('SW 注册失败:', err));
}
Service Worker 文件 (sw.js):
const CACHE_NAME = 'my-site-cache-v1';
const urlsToCache = [
'/',
'index.html',
'styles.css',
'app.js'
];
self.addEventListener('install', event => {
event.waitUntil(
caches.open(CACHE_NAME)
.then(cache => cache.addAll(urlsToCache))
);
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => response || fetch(event.request))
);
});