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

Html 缓存清单,缓存目录中的所有文件,html,Html,我正在尝试为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/shareic

我正在尝试为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:
如何缓存“images”目录下的所有文件

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

如何使缓存清单更新此文件,并且仅更新此文件以避免再次下载所有内容

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

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

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

    如何使缓存清单更新此文件,并且仅更新此文件以避免再次下载所有内容

  • 确保您的HTTP头设置正确,符合您期望的更新频率
  • 更新清单文件

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

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

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

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


    我想你需要你的客户重新加载页面两次,这样他们才能真正看到更新。(不过,您可以使用javascript告诉用户页面已更新,他们需要刷新)

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

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

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


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

    我编写了一个程序,可以直接从Windows资源管理器轻松生成包含完整列表的缓存清单文件,如果需要,请执行以下操作:

    如果需要,我执行了一个程序,以便直接从Windows资源管理器生成包含完整列表的缓存清单文件:

    谢谢。。。我将使用命令行生成缓存清单:
    echo“cache manifest”>cache.manifest;找到-键入f | sed“s#^\/###”| grep-vi“ds|u store”| grep-vi“~”>>cache.manifest;printf“\n网络:\n*\n\n回调:\n\n”>>cache.manifest和cat cache.manifest
    我不确定我是否理解您对问题2的回答,我只有一个html文件,其他文件是js、图像、css等。@Louis您不理解哪一位?第一点:通过http头,我猜您指的是这种类型的东西
    ,但是我不想以给定的频率刷新
    brandDB.txt
    ,我想在服务器上(由我)对其进行更改时刷新它。2.我知道如果我修改清单文件,客户端将看到它并重新加载文件,但我只希望重新加载修改后的文件,而不是所有文件。3.“设置每个文件的标题以允许缓存。”我只有一个html文件:
    index.html
    其余的是图像、css、js等@Louis 1。不,我指的是请求的头,
    meta-httpequiv
    对于本地磁盘驱动器上的文件以外的任何东西基本上都没有意义;我知道您不希望以给定的频率刷新,但浏览器将在HTTP头确定的时间后重新请求。2.然后你必须,或者像我上面描述的那样使用版本控制;3.它们都是文件,都有HTTP头谢谢。。。我将使用命令行生成缓存清单:
    echo“cache manifest”>cache.manifest;找到-键入f | sed“s#^\/###”| grep-vi“ds|u store”| grep-vi“~”>>cache.manifest;printf“\n网络:\n*\n\n回调:\n\n”>>cache.manifest和cat cache.manifest
    我不确定我是否理解您对问题2的回答,我只有一个html文件,其他文件是js、图像、css等。@Louis您不理解哪一位?第一点:通过http头,我猜您指的是这种类型的东西
    ,但是我不想以给定的频率刷新
    brandDB.txt
    ,我想在服务器上(由我)对其进行更改时刷新它。2.我知道如果我修改清单文件,客户端将看到它并重新加载文件,但我只希望重新加载修改后的文件,而不是所有文件。3.“设置每个文件的标题以允许缓存。”我只有一个html文件:
    index.html
    其余的是图像、css、js等@Louis 1。不,我指的是请求上的标题