问题标签 [cache-manifest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
manifest - 我的 HTML5 应用程序缓存清单正在缓存所有内容
更新:
** 当这个功能真的很新时,我发布了这个问题,我现在意识到这个功能不应该以这种方式使用,除非它通过 JavaScript 使用。但对于大多数犯同样错误和滥用此功能的初学者来说,似乎这个 hack 是一个很好的解决方案。如果您想缓存除 HTML 之外的所有内容,这应该使用 JS 完成,或者您可以使用下面的解决方案**
我想我的问题归结为:如果使用 HTML 标记的清单属性引用清单的文件属于 MASTER CACHE ENTRIES,那么动态页面如何使用清单。
我的文件如下所示:
现在的问题是,一旦我浏览了不在清单中的页面,我的实际动态 php 文件(如 index.php),当我第一次看到该页面并且没有缓存 chrome 时:
到目前为止一切顺利,直到我实际加载一个页面,并且 chrome 运行:
现在正如您在最后一行中看到的那样,它将 index.php 添加到我的应用程序缓存中,我通过转到 url 验证了这一点:chrome://appcache-internals/
它说:
index.php 和 home.php 之类的东西不应该被缓存。如果可能,我想告诉它不要缓存任何 html 扩展。但这是我从各种 RFC 中学到的东西:一个在线白名单通配符标志,它要么是开放的,要么是阻塞的。
好吧,我想使用这些在线白名单通配符标志之一并将其设置为阻止,但我找不到更多解释或示例。我还读到:
我也想使用一些这样的模式,但我又找不到任何文档。为什么没有 appcache 清单文档的迹象,而且我去过的其他网站也没有使用它,因为我的 chrome appcache 目录没有显示!?!?
感谢您的时间!
ipad - 在 HTML5 站点中的 iPad 2 上离线查看 MS Office 文档
我正在评估一个允许用户查看 MS Office 文档(Word、Excel 和 PPTX)、PDF 和可能的视频的 HTML5 网站。iPad2 上的用户应该可以离线访问所有这些数据。
在研究了缓存清单(和本地存储)等概念后,我明白这一切都是可能的,但我不清楚这种方法的局限性。离线存储的大小是否有限制?如果用户清除 iPad 缓存会发生什么?(存储的数据是否也被清除了?然后他必须重新下载所有这些文件吗?)
javascript - 是否可以在使用 cache.manifest 缓存的文件上使用 jquery getScript
我正在使用 getScript 获取文件:
我将该文件缓存在缓存清单中:
/android/android.js
当我尝试加载缓存的页面时,出现“获取”错误。
html - HTML5 仅在离线时使用缓存
我开始使用HTML5 缓存来查看一个简单的 HTML 页面,其中包含一个 css 文件和两个 js 文件。
我的问题是无论我是否离线都会使用缓存。但我只想在离线时使用缓存。有谁知道如何解决这个问题?
index.html文件清单:
app.cache清单文件:
谢谢!
jquery - 鉴于这些要求,我应该如何构建我的 HTML5 清单?
我有一个 HTML jquerymobile 应用程序,当用户尝试从他们的主屏幕加载应用程序时,我需要显示一个离线页面。
我希望他们看到的页面是gone-offline.jsp。问题是,如果我在用户访问的每个页面上都包含 HTML 清单,该页面最终会被缓存,这意味着当用户离线加载应用程序时,他们有时会看到他们访问的页面但图像丢失等,我不想要那,我想要一个只缓存某个页面的干净缓存系统。
是否可以防止其他页面在用户访问它们时被缓存。
我想要的是只缓存一个小 JS 文件,它检查导航器是否在线,如果不重定向到那个离线页面..
javascript - 尽管执行了 Ajax 请求并且服务器返回 200 和数据,但调用失败回调
我有一个test.html
带有缓存清单的 HTML5 测试网页。该网页向同一服务器发出 Ajax 请求,向缓存清单中do_get_data.php
的部分下列出的网页发出 Ajax 请求。NETWORK:
该请求由 Firefox 10 和 iPhone iOS 5 Safari 执行(这记录在服务 PHP 脚本中do_get_data.php
)。Firefox 10success
在 10 秒后调用回调函数,即从服务器返回数据时。但是,我的 iPhone iOS 5 Safarifail
在开始请求后立即调用回调函数并且不调用success
回调函数。
对于 iPhone iOS 5 Safari,textStatus
iserror
和JSON.stringify(jqXHR)
is {"readyState":0,"responseText":"","status":0,"statusText":"error"}
。
使用以下代码执行请求test.html
:
供参考,do_get_data.php
如下所示:
html - HTML5 离线应用程序中的文件上传
我正在开发一个基于 Web 的应用程序,该应用程序可能会在 Internet 连接不稳定的环境中使用。我将它实现为一个 HTML5 离线应用程序,它将利用 HTML5 本地存储(实际上是 jQuery 插件 jStorage)。它是一个数据输入驱动的应用程序,因此离线时创建的所有新条目都保存在本地存储中,并在稍后重新建立 Internet 连接时与服务器同步。我几乎完成了这项工作,但现在我面临一个要求,即用户实际上需要上传图像以及数据输入提交。
我找到了这个 HTML5 API 规范 - http://www.w3.org/TR/file-upload/其中谈到文件上传和离线访问。在我深入探讨之前 - 是否有围绕此功能的任何包装器可以为我简化它?
我也刚刚找到这篇文章 - http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/它利用了一个公开可用的 TwitPic API,我想得到一些来自这里的人的专业反馈。
谢谢!
caching - 使用应用程序缓存清单时,数据首先从哪里加载?
我正在为使用应用程序缓存的移动设备创建一个 Web 应用程序。
当我使用 Safari for iPhone 打开它时,会反映更新的更改。现在我将它添加到主屏幕,然后从主屏幕打开它。这次没有反映更改。我猜它是从旧的应用程序缓存中加载的。为什么两者不同?
然后我更改了清单文件,以便新文件将交换旧缓存。但仍然没有反映这些变化。
我的问题再次是
- 如果我已经缓存了文件并且我也在线,那么文件首先从哪里加载:从缓存还是从在线?
- 如果我在线而不是从离线缓存文件中加载,如何确保从在线加载文件。我希望仅在离线时才加载离线文件。
html - HTML 5 离线应用程序清单内容类型
我正在创建 HTML 5 离线应用程序示例。
我选择这样的清单文件:
清单文件是这样的:
- 做对了吗?
- 如何检查示例在我的本地系统中是否正常工作?
- 我读到必须使用 mime 类型的 text/cache-manifest 提供清单文件。我应该在哪里为清单文件设置这个 MIME 类型?我使用基本的 HTML 文件,我不使用 IIS 或 Apache 网络服务器
google-chrome - 缓存清单在 Chrome、Safari 中完美运行,但在移动版 Safari 中却没有
尝试使用缓存清单——在 Chrome 和 Safari 中似乎一切正常,但在移动版 Safari 中却不行。
我已确保遵守 HTML5 离线应用程序的标准:
将 <html manifest="cache.manifest"> 添加到已加载的单站点页面
确保清单的 MIME 类型正确(在 .htaccess 中设置):AddType text/cache-manifest .manifest
有一个语法正确的清单(通过http://manifest-validator.com/验证)。所有资产都使用相对路径引用(因此协议没有变化)。
我在 Chrome 和 Safari 中没有收到任何 Javascript 错误,并且正在使用这个方便的 snipit 将相关事件记录到控制台:
但是,在移动 Safari 中,我收到了“无法获取应用程序缓存清单”错误记录,以及没有其他解释的“检查”和“错误”日志事件。有任何想法吗?