iovxw

HTML5 离线缓存两个需要注意的地方

笔记

这两天用 ClojureScript 弄了个 Todo List

在线版本: https://iovxw.net/text-todo-list/

为了能离线使用, 试着用了下 HTML5 加的 Application Cache, 效果当然是不错的

不过中间看文档不仔细导致白折腾了半天

第一个问题:

缓存只有在浏览器检测到所设置的 manifest 更新后才会更新

如果 manifest 文件没更新, 手动调用 window.applicationCache.update() 也是没用的

简单暴力的方法是在文件里用注释标记一个版本号或者时间之类的

CACHE MANIFEST
# Version: 1.0.1
script.js
style.css

第二个问题:

坑爹的 CDN 优化

在前几篇博文里, 说过使用了 Kloudsec 的 CDN

然而这货的 Page Optimizer 就算关掉后, 也会默认使用级别 3 的优化

于是 css、js 之类的静态文件就被加了后缀了, 导致无法被缓存

调整到级别 1, 虽然静态文件名不变了, 但是依然会插入统计用的 js

离线使用时喜闻乐见的导致页面加载出错, window.onload 就挂了

至于解决方法, 我没找到, 也懒得找客服了。现在博客所使用的是 CloudFlare


顺带一提在 Chrome 里可以用 chrome://appcache-internals/ 清空缓存