最近在写Web Offline Application的网页。据MDN的说法,manifest文件的NETWORK部分是可以使用通配符的。我希望页面的Ajax请求都是连网发送的,所以写了一个这样的manifest文件
CACHE MANIFEST CACHE: css/common.css css/index.css js/jquery-min.js js/index.js NETWORK: *.php #2013-04-15T19:38:24+08:00
实际使用的时候,Mozilla Firefox下工作良好,但Google Chrome下Ajax请求全都会出错。后来找了很多资料,才发现Webkit对NETWORK部分的处理根本就没做通配符处理。当一个请求发起时,Webkit的浏览器会先看看NETWORK部分有没有完全相同的,如果有就直接连网发送;如果没有则会看NETWROK部分有没有单独的*,没有就直接返回加载错误。最后只好把manifest改成
CACHE MANIFEST CACHE: css/common.css css/index.css js/jquery-min.js js/index.js NETWORK: * #2013-04-15T21:14:51+08:00
这样一来所有manifest中不存在的资源都会联网加载。