html - 如何在 HTML5 缓存 list 中指定通配符以加载目录中的所有图像?

标签 html caching manifest offline-caching offlineapps

我在应用程序中使用的文件夹中有很多图像。使用缓存 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/

相关文章:

jquery - 根据屏幕大小调整 div 位置

python - 格式化 HTML 标签

java - 使用 MediaTracker 在 Swing 应用程序中缓存图像

html - 如何配置 list 文件

html - 为什么在 CSS 中使用 ">"?

javascript - html5 拖动更改拖动图像或图标

caching - 按页面控制服务器端缓存(Tomcat)?

android - BitmapFun 示例存在缓存问题

manifest - 我的 HTML5 应用程序缓存 list 正在缓存所有内容

android - 如何添加应用程序小部件提供程序类