缓存清单,缓存目录中的所有文件

时间:2013-11-04 13:39:00

标签: html5

我正在尝试为iphone构建一个Web应用程序,我不明白

  • 如何缓存“images”目录下的所有文件?

  • 我在服务器上修改了一个文件,比如“brandDB.txt”,如何让缓存清单更新这个文件,而这个文件只是为了避免再次下载所有文件?

由于

CACHE MANIFEST
# 20131104-1430
index.html
brandDB.txt
icon.png
splashiphone.png
touch-icon-iphone.png
css/style.css
images/shareicon.png
images/bourez.png
images/john.png
...

NETWORK:
*

FALLBACK:

3 个答案:

答案 0 :(得分:2)

我做了一个程序,可以直接从Windows资源管理器轻松生成包含完整列表的缓存清单文件(如果需要):http://matthieu.com/cmfg/

答案 1 :(得分:1)

  

如何缓存“images”目录下的所有文件?

将它们全部列在清单文件中(如果有很多文件,最容易使用脚本生成列表)。

  

如何让缓存清单更新此文件,而这个文件只是为了避免再次下载所有内容

  1. 确保为您期望的更新频率正确设置HTTP标头
  2. 更新清单文件
  3. 如果您在每个文件上设置标头以允许缓存,浏览器将从其自己的缓存填充应用缓存。如果要在不使用HTTP标头的情况下对文件进行版本控制,请在文件末尾添加查询字符串,例如。 brandDB.txt?v=1 - 但是,如果您这样做,请务必更新应用程序中的引用。

答案 2 :(得分:1)

嗯,不幸的是,我要说的是Jake Archibald Said: “应用程序缓存是一个douchebag!” (关于它是如何工作的好文章(实际上不是一个douchebag))

http://alistapart.com/article/application-cache-is-a-douchebag

基本上,您可以创建一个脚本来列出图像目录中的所有文件 并将其粘贴到生成的AppCache文件中。

应用程序缓存只会在文件内容发生变化时更新,您还需要确保文件本身不会被缓存。

我认为你需要你的客户重新加载页面两次才能真正看到更新。 (但是你可以使用javascript告诉用户该页面已经更新,他们需要刷新)

相关问题