PWA离线时骨架屏怎么正常显示?

令狐爱霖 阅读 201

我在做 PWA 应用,加了骨架屏提升加载体验,但发现一旦离线(比如关掉网络),骨架屏的样式就没了,页面直接白屏。我试过把骨架屏相关的 CSS 内联到 HTML 里,也确认 service worker 缓存了这些资源,但还是不行。

是不是骨架屏的 CSS 没被正确缓存?或者离线状态下某些资源加载策略有问题?我的骨架屏是用下面这种方式写的:

<div class="skeleton">
  <div class="skeleton-text"></div>
  <div class="skeleton-text short"></div>
</div>

对应的 CSS 是通过 <link rel="stylesheet" href="/styles/skeleton.css" rel="external nofollow" > 引入的,这个文件在 service worker 的 precache 列表里也有。但离线打开还是没样式,求解!

我来解答 赞 5 收藏
二维码
手机扫码查看
2 条解答
爱学习的东江
问题在于你的HTML文档本身没有被缓存。precache只保证CSS文件能被取到,但浏览器得先能加载HTML才能去请求CSS。

两种解决思路:

一是把骨架屏CSS内联到HTML的