如何在没有联网的情况下创建一个默认显示的页面?

如果您关闭互联网并通过 Chrome 访问 YouTube,您可以看到此页面(前提是该站点之前已在此浏览器中至少加载过一次):

为此,您需要使用ServiceWorker。您还需要通过 HTTPS 公开您的站点 - Service Worker 出于安全原因需要这样做。

const CACHE_NAME = 'app_serviceworker_v_1',
    cacheUrls = [
        '/ru',
        '/en',
        '/css/style.css',
        '/js/script.js'
    ]

// период обновления кэша - минута
const MAX_AGE = 60

self.addEventListener('install', (event) => {

    event.waitUntil(
        caches.open(CACHE_NAME).then((cache) => {
            return cache.addAll(cacheUrls)
        })
    )
})
self.addEventListener('fetch', (event) => {
    event.respondWith(
        caches.match(event.request).then((cachedResponse) => {
            let
                lastModified,
                fetchRequest
            // если ресурс есть в кэше
            if (cachedResponse) {

                lastModified = new Date(cachedResponse.headers.get('last-modified'))

                if (lastModified && (Date.now() - lastModified.getTime()) > MAX_AGE) {
                    fetchRequest = event.request.clone()

                    return fetch(fetchRequest).then((response) => {
                        const responseClone = response.clone()
                        // при неудаче всегда можно выдать ресурс из кэша
                        if (!response || response.status !== 200) {
                            return cachedResponse
                        } else {
                            // обновляем кэш
                            caches.open(CACHE_NAME).then((cache) => {
                                cache.put(event.request, responseClone)
                            })
                            // возвращаем свежий ресурс
                            return response
                        }
                    }).catch(() => cachedResponse)
                }
                return cachedResponse
            }

            return fetch(event.request)
        })
    )
})

 

如何在没有互联网的情况下创建一个默认显示的页面icon-default.png?t=M85Bhttps://www.rerror.com/question/1256665/%e5%a6%82%e4%bd%95%e5%9c%a8%e6%b2%a1%e6%9c%89%e4%ba%92%e8%81%94%e7%bd%91%e7%9a%84%e6%83%85%e5%86%b5%e4%b8%8b%e5%88%9b%e5%bb%ba%e4%b8%80%e4%b8%aa%e9%bb%98%e8%ae%a4%e6%98%be%e7%a4%ba%e7%9a%84%e9%a1%b5%e9%9d%a2/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值