问题标签 [application-cache]

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.

0 投票
1 回答
1801 浏览

php - Wordpress -标签挂钩/过滤器?

我正在为 Wordpress 编写应用程序缓存插件。
我想知道如何将当前主题中的 <\html> 标签从我的插件修改为:

<\html manifest="Site_url().../plugin/bla.php?var1=foo&var2=bar">

我正在谷歌搜索并在 wordpress 的开发网站上查找东西,但还没有运气。

我感谢任何帮助(:

最好的,米

0 投票
1 回答
298 浏览

html - 我可以在我的 HTML5 应用程序缓存清单中使用与协议无关的 URL 吗?

我们有许多网站使用相同的代码库来运行不同的网站,具体取决于使用的域名,我们希望使用 HTML5 应用程序缓存来提高这些网站的性能,以缓存网络字体和其他大型内容,很少更新的文件。

目前,我们正在使用 HTTPS 对完全限定的 URL 进行硬编码,以防万一网站之一使用 SSL。我们的“静态”网站服务器可以同时处理 HTTP 和 HTTPS,所以不要这样做:

我们希望能够做到这一点:

我们这样做是否可能会遇到任何问题?

0 投票
1 回答
176 浏览

html - 如何在html5 AppCache中缓存图片

我正在建立一个摄影网站,理想情况下应该离线工作。缓存所需的 css/js 文件非常简单。问题是,如何处理实际照片。

我目前正在从 flickr 加载它们,包括缩略图版本和完整分辨率版本。这给我带来了两个问题:

是否可以缓存从外部源传递的文件,或者所有内容都必须来自同一个域?

将所有图片缓存在应用程序缓存中可能太多了,因为它会在用户第一次访问该站点时导致大量下载。这里有什么建议?是否可以让用户明确打开完整版的应用缓存?

0 投票
1 回答
1061 浏览

web-applications - 未引发 applicationCache 事件

在 Chrome 中,捕获 applicationCache 事件有效(见下文),但在 FireFox 17 中无效(尽管我从信息中看到,在允许 appCache 填充后,其中有 1.7MB)。所以它正在工作,但我没有得到这个事件。为什么?(此代码位于加载的第一个 .JS 文件中)。

顺便说一句,我希望 FireBug 在我使用 Chrome 工具时拥有的 appCache、IndexDB 上的那些整洁的资源选项卡信息。

0 投票
1 回答
155 浏览

html - 有没有办法从客户端编辑缓存清单

http://www.html5rocks.com/en/tutorials/appcache/beginner/ 中说明了尝试更新缓存requires the manifest file to have changed。这意味着服务器端的人每次想要更新他想要缓存的内容时都必须手动更改清单文件。

出于测试目的,服务器端是否有办法使清单可从客户端编辑,以便用户可以更改清单,以便用户可以将他想要存储的任何内容存储在缓存中?

0 投票
2 回答
1272 浏览

ios - 有没有办法查询 HTML5 应用程序缓存?

有没有办法查询 HTML5 应用程序缓存的内容?

我正在编写一个使用大量缓存 Web 内容的 iOS 应用程序。在应用离线时加载给定页面之前,我想检查该页面是否存在于缓存中。如果没有,我会通知用户他们必须在线才能看到该内容;如果是这样,我会继续加载它。

现在,iOS 有自己的 URL 缓存系统,我最初只是假设我可以这样检查缓存的内容:

傻我。似乎 iOS 的缓存和 HTML5 的缓存是不相关的: -cachedResponseForRequest: 对任何请求都返回 nil,即使我可以看到 URL 在 HTML5 应用程序缓存中(使用 Safari Web 调试器)。

那么,有什么方法可以查询 HTML5 应用程序缓存的内容吗?答案是使用 Objective-C 代码还是 Javascript 并不重要,因为我总是可以从 Objective-C 执行相关的 JS。

0 投票
1 回答
328 浏览

javascript - HTML5 应用程序缓存错误事件详细信息

我有一个 HTML5 离线应用程序,有时用户会遇到缓存错误,我使用事件侦听器处理这些错误并显示一般错误消息。

为了帮助调试这些,我还想显示和记录错误详细信息(如 Chrome 控制台中所示),例如失败的获取。我还没有找到通过 Javascript 获取详细信息的方法。这目前可能吗?

0 投票
1 回答
595 浏览

firefox - FF/IE 10 的 ApplicationCache 是否完全实现(或正确实现)?

问题:

当浏览器设置为“脱机工作”时,无法从 applicationCache(脱机缓存)获取备用资源。

环境细节:

  • Windows 7 64 位 SP 1
  • IE 10 版本。10.0.9200.16438
  • 火狐版 18.0.1
  • IIS 版本 7.5.7600.16385
  • .manifest MIME 类型为 text/cache-manifest

清单详情:

FALLBACK:/AppCacheDemo/Home/CarNew /Sandbox/Car/AppCacheDemo

如何触发离线模式:

  • IIS 已停止
  • 文件菜单中的脱机工作菜单项被选中

演示应用程序详细信息:

随附的演示包含 3 页。

登录页面 (/AppCacheDemo/Home/Index),它是唯一具有清单文件属性的页面。由于具有 manifest 属性,它会自动放置在 applicationCache 中。

页面的在线版本和对应的离线版本,分别为 /AppCacheDemo/Home/CarNew、/AppCacheDemo/Home/CarNewOffline。

预期功能:

浏览器在请求 /AppCacheDemo/Home/Index 时检测到 manifest 属性的存在,并下载 manifest 中列出的所有资源。

用户单击 /AppCacheDemo/Home/Index 上存在的链接并被重定向到 /AppCacheDemo/Home/CarNew

当浏览器检测到互联网连接时,/AppCacheDemo/Home/CarNew 会提供给用户。如果未检测到 Internet 连接,则在向 /AppCacheDemo/Home/CarNew 发出请求时,会从 applicationCache 提供 /AppCacheDemo/Home/CarNewOffline。

在 Firefox 中重现的步骤(实际功能):

  1. 打开 FF 并清除缓存(alt + ctrl + delete)。
  2. 请求关于:缓存 观察磁盘/离线缓存中列出的“条目数”都列为零。
  3. 一个新选项卡并请求 /AppCacheDemo/Home/Index
  4. 单击允许按钮以允许 Firefox 存储离线数据。
  5. 返回 about:cache 并刷新页面。一个。磁盘缓存条目数应列为 3(可能更多,具体取决于您的环境) b。离线缓存条目数应列为 3。
  6. 单击磁盘缓存部分下的链接“列出缓存条目”(或在新选项卡中打开链接),并注意没有指向 /AppCacheDemo/Home/CarNew 的条目
  7. 返回打开 /AppCacheDemo/Home/Index 的选项卡,然后单击“让我们建立一个新的汽车链接” 您应该被重定向到 /AppCacheDemo/Home/CarNew
  8. 返回 about:cache?device=disk 并注意 /AppCacheDemo/Home/CarNew 存在一个新条目,它的 Fetch count 列为 1。
  9. 停止 IIS
  10. 从文件菜单中选择“脱机工作”菜单项
  11. 刷新当前页面(/AppCacheDemo/Home/CarNew)
  12. 返回 about:cache?device=disk 并注意 /AppCacheDemo/Home/CarNew 存在一个新条目,它的 Fetch count 现在列在 2 处。

根据 about:cache?device=disk for /AppCacheDemo/Home/CarNew 中列出的信息,Firefox 似乎正在向用户提供该版本的页面。我期待 /AppCacheDemo/Home/CarNewOffline 改为从 applicationCache 获得服务,因为我在清单中定义了一个后备规则,说明何时请求 /AppCacheDemo/Home/CarNew 并且不存在互联网连接,从 /AppCacheDemo/Home/CarNewOffline 提供服务applicationCache 代替。

在 Firefox 中重现的步骤(预期功能):

在执行以下步骤之前,不要忘记取消选择“脱机工作”。

  1. 打开 FF 并清除缓存(alt + ctrl + delete)。
  2. 请求关于:缓存 观察磁盘/离线缓存中列出的“条目数”都列为零。
  3. 一个新选项卡并请求 /AppCacheDemo/Home/Index
  4. 单击允许按钮以允许 Firefox 存储离线数据。
  5. 返回 about:cache 并刷新页面。一个。磁盘缓存条目数应列为 3(可能更多,具体取决于您的环境)。一个。离线缓存条目数应列为 3。
  6. 单击磁盘缓存部分下的链接“列出缓存条目”(或在新选项卡中打开链接),并注意没有指向 /AppCacheDemo/Home/CarNew 的条目
  7. 停止 IIS
  8. 从文件菜单中选择“脱机工作”菜单项
  9. 在地址栏中键入 /AppCacheDemo/Home/CarNew。一个。您应该被重定向到 /AppCacheDemo/Home/CarNewOffline。地址栏中的 URL 仍应为 /AppCacheDemo/Home/CarNew,但文档的内容应为 /AppCacheDemo/Home/CarNewOffline
  10. 在一个新选项卡中,请求 about:cache?device=disk 并注意 /AppCacheDemo/Home/CarNew 不存在任何条目。

因为 /AppCacheDemo/Home/CarNew 不存在于磁盘缓存中,FF 尊重我在清单中定义的后备规则,并改为提供 /AppCacheDemo/Home/CarNewOffline。如果我要

在 IE 中测试:

除了导航到 about:cache 之外,上面的步骤或多或少都可以遵循。不同之处在于,当 IE 设置为“离线工作”并请求 /AppCacheDemo/Home/CarNew 时,IE 会显示一个页面,并显示“无法显示此页面”消息。如果直接请求 /AppCacheDemo/Home/CarNewOffline,IE 将提供页面。由于清单中指定了回退规则,我希望 /AppCacheDemo/Home/CarNewOffline 得到服务,但事实并非如此。

在 Safari/Chrome 中测试:

Safari/Chrome 没有“脱机工作”菜单项,因此在将 navigator.onLine 报告为 false 之前需要执行一些额外的步骤。我必须从物理上拔下我的 CAT 5 电缆并断开与任何 VPN 的连接,以使浏览器处于真正断开连接的状态;但是,当 /AppCacheDemo/Home/CarNew 没有可用的互联网连接时,会遵守回退规则并提供 /AppCacheDemo/Home/CarNewOffline。

AppCacheDemo 项目(配置为使用 IIS 的 Microsoft MVC 4 Web 应用程序):

http://www.filedropper.com/appcachedemo

0 投票
1 回答
521 浏览

html - Firefox/IE10 - HTML5 应用程序缓存和 Cookie

我在 Firefox 和 IE10 上遇到 HTML5 appCache 问题。

我已经构建了一个最小的测试用例: https ://docs.google.com/file/d/0B7CVmRJOMgTNZUxkLWRDNmhtVU0/edit?usp=sharing

访问“applicationCache/test.html”页面,浏览器将寻找正确的清单,并开始从其列表中的文件下载所有内容。

当我在列表中放入一个处理 COOKIES 的 .php 文件时,就会出现问题;例如,我添加了一个 .php 文件,它将调用 php 函数“session_start()”。Chrome 和 Safari 可以在应用程序缓存下载期间正确处理此类文件。Firefox 和 IE10 具有相同的行为:它们停止并发出一般错误信号。

经过长时间的搜索,我在 bugzilla 上找到了这张票:https ://bugzilla.mozilla.org/show_bug.cgi?id=722683

有没有人可以提示我在 applicationCache 下载事件期间正确处理 COOKIES 而不会出错?我是在做错事还是违反标准?

谢谢您的帮助!

0 投票
1 回答
1447 浏览

javascript - 为什么不使用 localStorage 来存储静态资源?

这是逻辑上遵循这个问题的问题:

HTML5 应用程序缓存是否相关?

很明显,流行的站点没有使用 HTML 5 应用程序缓存来保存其设计的静态资源。

只需检查<html>标签中的清单属性。它不在那里。

进一步研究 HTML5 localStorage 也没有被使用。

作为一个测试用例,我看了

  • www.google.com
  • www.twitter.com
  • www.facebook.com

只需进入控制台并输入

控制台应该会弹出一个键列表。

这些站点都没有将其静态数据保存到磁盘吗?

为什么是这样?

访问网络以获得未更改的资源似乎是一种资源浪费。

详细说明。如果点击重新加载,页面会重新下载静态资源。使用 Google,您甚至可以看到 URL 路径中使用的静态一词。但是对于这个问题,我使用这个词的概念含义。