问题标签 [offline-caching]

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 回答
2471 浏览

html - 如何关闭 HTML5 离线缓存

我在我的网站上使用 HTML5 离线缓存已经有一段时间了,出于某些原因,我正在考虑将其关闭。令我惊讶的是,它不起作用。

这就是我实现 HTML5 离线缓存的方式。

在我的index.html我给出清单文件的路径

在 app.manifest 文件中,我列出了我希望浏览器缓存以供离线使用的所有 js/css/png 文件。每次部署更新时,我都会更新 app.manifest 文件,这会导致浏览器获取清单文件中列出的所有文件的最新版本。

为了关闭离线缓存,我将 index.html 的开始标记更改为

我对 app.manifest 文件进行了虚拟更改,以便浏览器(已经缓存了我的网站)将检测到更改并下载所有文件的最新版本(包括 index.html)。

我注意到的是,浏览器确实获得了所有文件的最新版本。我在没有清单声明的更新版本中看到了新<html>标签,但是浏览器对未来更改的行为没有改变。即我现在希望浏览器在服务器上更改时立即获取新版本的 index.html 文件。然而,这不会发生。在我对清单文件进行任何更改之前,浏览器不会下载更新的 index.html。

<html>因此,在我看来,浏览器已将 app.manifest 文件与我的网站 URL 永久关联,即使我没有在标签中提及它,它也不会删除它。

我已经在 Google Chrome 和 Firefox 上进行了测试,结果相同。我也尝试重新启动 Chrome,但它不会忘记我的网站曾经为它定义了 app.manifest。我还没有找到任何关于网络上离线缓存这方面的讨论。

更新:我设法通过清除所有浏览数据(通过转到设置)来摆脱 Chrome 中的行为。但这不是我可以告诉用户做的事情。

0 投票
3 回答
5527 浏览

html - Offline db app to online syncing, cross-platform, use HTML5?

For a school project for a real-world client we are being asked to create an app that can work in offline mode to store information into some sort of db, that will then sync that info with an online db when the system has an internet connection (needs to support pc, mac, ios, android, but could possibly be a different app for each system type)

Is HTML5 with Web Storage (local) the best way to go? All the browsers seem to support it so it seems like the best option for online use, but can it even be used to run in an offline mode with no access to the internet? I'm a little lost here.

0 投票
5 回答
8430 浏览

html - HTML 5 离线存储缓存清单不起作用

我试图让 HTML5 离线存储以基本方式工作。我阅读了有关DiveIntoHTML5的信息,这似乎是有道理的,但它似乎对我不起作用。我想知道是否有人可以帮助我调试这个。

基本上,我已经为应用程序 index.htm 设置了一个主页。所以我的应用程序位于http://www.mydomain.com/online/index.htm的网络上。用户将访问此页面,他们通常会在其中完成所有日常工作。访问此 URL 将创建一堆缓存文件,这样他们就可以在离线时访问http://www.mydomain.com/offline并查看应用程序的工作版本。

在线主页中的前几行代码是:

我生成了一个名为“cache.txt”的纯文本文件,并在记事本中添加了以下内容:

然后,我将此文件重命名为“cache.manifest”并将其上传到在线应用程序的根目录(与我的主页处于同一级别),以便可以通过http://www.mydomain.com/online访问它/cache.manifest

托管公司据称已将“文本/缓存清单”的内容类型添加到 IIS 中扩展名为 .manifest 的所有文件中。我认为这是有效的,因为当我在http://www.mydomain.com/online/cache.manifest的 Firefox 中查看文件时, Firebug 告诉我内容类型是:

还是应该返回“文本/缓存清单”?也许这就是问题所在?

当我查看系统上的脱机存储文件夹(C:\Users\Me\AppData\Local\Mozilla\Firefox\Profiles\b12u6xza.default 时,其中根本没有与该域相关的任何内容。

谁能建议可能出了什么问题 - 因为我有点难过?

0 投票
1 回答
765 浏览

android - 安卓谷歌地图实验室下载地图区域不显示

我曾经能够通过转到设置/更多/实验室/下载区域地图来在 android 上的 gmaps 应用程序中启用地图的离线缓存。在带有地图 5.4.0 的 android 2.3.6 中,下载区域地图根本不显示。

我是否缺少有关更改的知识?现在默认情况下是否启用该功能(我无法让它工作 - 长按地图不提供下载地图)。

谢谢

0 投票
1 回答
574 浏览

html - Webapp 应用程序缓存更新

我有一个使用应用程序缓存进行离线和在线访问的 Web 应用程序。我遇到的问题是当我更改清单文件时,我的一些用户没有看到更新。它适用于我和其他人,所以我唯一的理论是某些 ISP 正在缓存清单文件。

有人遇到过这种情况么?

我不知道以编程方式刷新浏览器应用程序缓存以强制更新的任何方法。window.applicationCache.update() 似乎没有奏效(至少在 iPad 上)。向 URL 添加查询的常用技巧可能会破坏离线行为。

无奈之下,我可以简单地使用一个不变的加载器页面并将所有代码放在 localStorage 中并自己进行更新。

0 投票
1 回答
5993 浏览

cordova - Phonegap 和离线缓存

我一直在尝试 Phonegap,如果您已经了解网络编程,我真的很喜欢制作电话应用程序的简单方法。

我正在为网站制作一个应用程序,以便在新帖子在线时轻松关注。

我抓取提要并将其保存到 localstorage, localstorage

但是我应该如何缓存图像?

使您的应用离线友好的最佳方法是什么?

这是这样做的方法吗? HTML5 缓存宣言

问候,凯文

0 投票
1 回答
2938 浏览

html - 如何逐个用户支持多个自定义缓存清单以供离线使用?

可能重复:
HTML5 缓存 — 单个 URL 是否可以有多个不同的缓存?

我的应用程序使用项目的概念,每个项目都有多个需要离线提供的支持文件(主要是图像文件和 pdf)。我想使用 HTML5 缓存清单来完成此操作。

如果我在缓存清单中包含所有项目的所有支持文件,那将是庞大且不可行的。(即移动设备上没有足够的空间,这完全是矫枉过正,用户只需要他们被分配到的项目的支持文件)

用户被分配给项目,所以理想情况下,我可以为每个用户拥有一个自定义缓存清单文件,其中包含用户被分配到的项目所需的支持文件。

我怎样才能做到这一点?有没有办法在浏览器加载初始页面后分配不同的缓存清单?

如果没有,实现此功能的另一种方法是什么?

0 投票
4 回答
25144 浏览

html - 删除 HTML5 离线 AppCache

我有一个带有关联 appcache 清单的 HTML 文档。但现在我想暂时摆脱离线应用程序缓存。

如果我从标签中删除清单<html>,已经有缓存版本的浏览器将继续使用该缓存版本。

如果我更新 appcache 清单,无论如何,仍然有一个 appcache。

删除离线应用程序缓存最明智的方法是什么?我想我可以将清单更改为没有以下条目:

然后它实际上不会缓存任何东西。

但肯定有办法完全摆脱 appcache 和清单文件,不是吗?

0 投票
5 回答
19197 浏览

html - 如何在 HTML5 缓存清单中指定通配符以加载目录中的所有图像?

我在应用程序中使用的文件夹中有很多图像。使用缓存清单时,如果我可以指定一个通配符来加载某个目录中要缓存的所有图像或文件,那么维护起来会更容易。

例如

这可以做到吗?已经在一些浏览器中尝试过,../img/*但它似乎不起作用。

0 投票
1 回答
3361 浏览

android - Android 仅加载缓存不起作用。离线显示 WebView

我正在尝试通过 webview 显示一些网页而不连接到互联网。如果没有连接到互联网,我会收到空​​指针错误。如果有连接,它正在工作。所以我认为这与

请帮我。我已经用 getCacheDir() 检查了 AppCachePath 是否正确;非常感谢