Service Worker只有安装后才会存在。而且因为他的逻辑是由开发者编写的 JavaScript 而不是浏览器控制的。
Service Worker 拥有和缓存相关的 API ,这让他可以储存资源。和内存储存不同的是这种存储方式是持久的。即使该标签页被关闭甚至浏览器重启,这些被存储的资源都不会丢失。只有当开发者明确表示要移除他们的时候(使用 cache.delete(resource)),他们才会被移除。另外一种情况就是当浏览器的存储空间不足时,他会将整个 Service Worker 缓存还有其他源存储如 indexedDB、localStorage 等都清除掉。也因此,Service Worker 能确保他的存储和其他源存储是同步的。
Service Worker 只负责特定的域,换言之,他最多只能管理一个 host。因此,Service Worker 只能控制来自特定域内的文档的请求。
时间: 2024-10-06 19:48:44