0

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

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

  • 我修改了服务器上的一个文件,如“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:
4

3 回答 3

2

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

于 2014-05-30T15:59:18.100 回答
1

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

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

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

  1. 确保根据您期望的更新频率正确设置 HTTP 标头
  2. 更新清单文件

如果您已将每个文件的标头设置为允许缓存,浏览器将从其自己的缓存中填充应用缓存。如果您想在不使用 HTTP 标头的情况下对文件进行版本控制,请在文件末尾添加一个查询字符串,例如。brandDB.txt?v=1- 但是,如果您这样做,请务必更新应用程序中的参考。

于 2013-11-04T13:44:56.763 回答
1

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

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

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

应用程序缓存仅在其文件内容更改时才会更新,您还需要确保文件本身没有被缓存。

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

于 2013-11-04T13:45:55.567 回答