1. 前言
这周有空 优化了下网站,
- 主要解决了
webpack
打包压缩 无效问题, - 升级
react-jinke-music-player
的版本 优化了体验 - 解决了缓存问题,本文记录下这让人蛋疼的缓存
2. MANIFEST 离线缓存
不晓得是不是脑壳打铁,网站上线到上周,我一直用的是这个 MANIFEST
离线缓存,听起来很酷炫
1 | 应用程序缓存为应用带来三个优势: |
其实一言难尽
首先新建一个 xx.appcache
的文件,比如像这样
1 | CACHE MANIFEST |
由于 webpack 打包 加上了 hash 值 我不可能写死,所以自己又写了一个小工具去动态生成这个文件 地址
首先 新建一个 模板 cacheTemp.tpl
, 本来还想缓存 音乐文件的,但是大小有限制,就缓存了一些静态文件
1 | CACHE MANIFEST |
1 | //webpack.config.js |
然后打包出来 差不多长这样
1 | CACHE MANIFEST |
然后在 index.html 里面引入
1 | <!DOCTYPE HTML> |
然并卵啊!!! , 首先 网站是 SPA
单页应用,所谓的离线可访问 根本不现实,文章页网络请求显示数据,每次更新 缓存时 , 还会阻塞 页面加载,有时候网站还访问不了,要等它更新缓存完成之后 手动刷新才行,十分的蛋疼,目前的标准这个 api 已经被废弃。真实日了狗了。..
3. PWA
行嘛,这个不行嘛 我换一种嘛 , 用一种潮流的 PWA
渐进式 webApp 总行了噻,又是一番折腾,跟着网上的教程 撸了一遍
1 | /** |
我想的有点多,想做一个 客户端的文章推送订阅,然后把静态资源 通过 server worker
缓存起来,结果要 HTTPS 才行,兼容性也比较差,就当学习了新知识
4. manifest.json
虽然 server worker 没用起,但是我给网站加上了 一个 简单炫酷的玩意,也是 PWA
的一部分 , 这是一个描述文件 在 pc 或者 手机时 可以在设置选择 保存到桌面
然后就可以得到 原生 app 一样的体验 , 肥肠酷 ! 是不是很像 electron
打包出来的桌面应用呢?
1 | //manifest.json |
导入
1 | <link rel="manifest" href="manifest.json" crossorigin="use-credentials"> |
效果
5. 弄些花里胡哨的东西,还是没缓存
感觉 买了本 图解 HTTP
来读 . 了解到 Cache-Control
max-age
字段,这是个 HTTP/1.1
的东东,用来控制缓存的生命周期,也就是有效期,第一次请求不会缓存,第二次 Status Code:200 OK (from disk cache)
可以看到已经将内容缓存在磁盘中。到有效期到了后 浏览器 会再发一次请求 如果服务器告诉它没变化 就会返回 304
的状态码。表示没有修改。
6. 结语
多捞啊!头皮发麻 这种简单的东西我都要搞这么久 其实归根结底还是要多看看基础知识的书!不说了。工头叫我搬砖了