离线模式下如何保存网页中的图片
有时候你打开一个网页,看到几张特别喜欢的图,正准备保存,结果网络突然断了。这时候别慌,其实有几种办法可以在离线模式下照样把图片留下来。
提前缓存:让浏览器帮你记住图片
现代浏览器在加载网页时,会自动把页面资源,包括图片,缓存在本地。哪怕你现在断网,只要之前访问过这个页面,刷新一下(或者直接右键图片)往往还能保存。关键是——你得先看过这张图。
比如你在咖啡馆连着Wi-Fi浏览一个产品展示页,当时加载过的商品图都留在缓存里。等你上地铁没信号了,再打开同一个页面,虽然其他内容加载不出来,但那些图大概率还能显示,这时候右键“另存为”就行。
使用 Service Worker 预加载图片
如果你是网站搭建者,想让用户在离线时也能保存图片,可以在项目中加入 Service Worker 脚本,提前把关键资源缓存下来。
self.addEventListener('install', function(e) {
e.waitUntil(
caches.open('image-cache').then(function(cache) {
return cache.addAll([
'/images/hero.jpg',
'/images/banner.png',
'/images/icon.webp'
]);
})
);
});
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
这段代码会在用户首次访问时,悄悄把指定图片存进本地缓存。之后即使断网,这些资源依然可访问,用户自然能正常保存。
打包成离线包更省心
有些网站内容更新不频繁,比如企业宣传页或作品集。可以直接把整个页面和图片打包成 ZIP,提供下载入口。用户下载后解压,双击 HTML 文件就能看,想保存哪张图都行,完全不依赖网络。
这种做法适合静态站点。用构建工具如 Vite 或 Webpack 打包时,把所有图片输出到 assets 目录,再统一压缩,用户拿到的就是完整的离线版。
移动端的小技巧
手机上看网页时,可以先把页面“添加到主屏幕”,尤其是支持 PWA 的网站。这类页面像原生应用一样运行,图片资源更容易被系统保留。下次没网的时候打开,很多图还是能显示,长按就能保存。
要是用的是 Safari 或 Chrome,还可以尝试“分享”→“添加到阅读清单”。虽然它主要缓存文字,但部分图片也会一并保存,适合图文类内容。