我在应用程序中使用的文件夹中有很多图像。使用缓存 list 时,如果我可以指定一个通配符来加载特定目录中要缓存的所有图像或文件,那么维护起来会更容易。
例如
CACHE MANIFEST
# 2011-11-3-v0.1.8
#--------------------------------
# Pages
#--------------------------------
../index.html
../edit.html
#--------------------------------
# JavaScript
#--------------------------------
../js/jquery.js
../js/main.js
#--------------------------------
# Images
#--------------------------------
../img/*.png
这能做到吗?也在一些带有 ../img/*
的浏览器中尝试过,但它似乎不起作用。
最佳答案
这会更容易,但它如何运作? list 文件是在浏览器中进行解析和操作的东西,除了您告诉它的内容之外,它对您服务器上的文件没有任何特殊了解。如果浏览器看到这个:
../img/*.png
浏览器应该从服务器请求的第一张图片是什么?让我们从这些开始:
../img/1.png
../img/2.png
../img/3.png
../img/4.png
...
../img/2147483647.png
这是所有可能存在的具有数字名称的图像,半任意地停止在 231-1 .您的 img
目录中存在这 20 亿个文件中的多少?您真的希望浏览器发出所有这些请求只获得 20 亿个 404 吗?为了完整起见,浏览器可能还想请求所有零填充的等价物:
../img/01.png
../img/02.png
../img/03.png
../img/04.png
...
../img/001.png
../img/002.png
../img/003.png
../img/004.png
...
../img/0001.png
../img/0002.png
../img/0003.png
../img/0004.png
...
现在浏览器对文件发出了超过 40 亿次 HTTP 请求,其中大部分不存在,而且在构建可能存在于服务器上的可能文件名时,它甚至还没有处理字母或标点符号。这不是 list 文件工作的可行方法。服务器是已知 img
目录中的文件的地方,因此必须在服务器上构建文件列表。
关于html - 如何在 HTML5 缓存 list 中指定通配符以加载目录中的所有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8001196/