今天想优化下项目,试了下html5的appcache,发现还是有点坑的,最终暂时放弃了。下边说下这两个坑。
1. appcache除了会缓存列表里的文件外,还会缓存引用appcache的文件。比如index.php里引用appcache
<html manifest="demo.appcache"> </html>
index.php也会被缓存,如果index.php里有任何动态数据,这些数据将不会再更新。
如果要避开这个问题,那么首页的内容一定不能是动态内容,比如要将index.php改为index.html,然后用ajax去请求数据再做展示。这样需要对已经写好的程序做一些改造的工作。
2. appcache更新缓存是靠appcache文件里的注释里的版本号,如果版本号更新,浏览器会将所有的需要缓存的文件重新下载,这样一下会同时出现多个下载请求,这个有时候不符合预期。
通过以上两点,发现html5 有的标准还有待加强和发展,至少appcache这个特性并不是想象中那么好用的。如果需要使用,确保两点:
1. 首页不能是动态内容
2. 确保一定是不经常改动的资源,再写进appcache里,否则更新的成本比较大。
时间: 2024-11-29 07:14:39