问题标签 [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.
android - Android 仅加载缓存不起作用。离线显示 WebView
我正在尝试通过 webview 显示一些网页而不连接到互联网。我想如果没有连接到互联网,我可以将网页保存在缓存中并再次从缓存中加载它们。但它不起作用。该网站没有出现,而是我知道该网站现在不可用。我已经检查了AppCachePath
是否正确getCacheDir()
。你有什么想法,我做错了什么,或者它是如何工作的。将会是完美的。非常感谢。
iphone - HTML5 LocalStorage 限制命中,但我只使用离线缓存
我正在为我们的客户开发一个离线网络应用程序,旨在以飞行模式在 iPad 上运行,安装在支架上。它没有服务器端动态页面,只有一个静态 HTML 页面,许多 JavaScript 组件来处理导航和交互性,以及一堆小的图形资源。整个网站(静态 html + css + js + 图形)重达 8.3Mb。
我通过offline.manifest
在我的单个 HTML 文件中声明的一个声明来缓存整个站点,这个清单绝对引用了根目录下的所有文件,以便缓存所有需要的文件。
我没有在我的 JS 代码中使用 localStorage、IndexedDB 或其他离线存储技术。除了“自动”缓存之外,我不会在设备上存储任何内容。
因此,请检查我的网络服务器日志,当我的客户端在其 iPad 主屏幕上安装网络应用程序时,它会下载所有文件一次,然后再从我的服务器上下载任何内容。很好,正是他最初想要的:一个完整的离线网络应用程序。
那么,为什么经过我客户的几分钟测试,他的 iPad 要求他“将本地存储从 10Mb 增加到 25Mb”????
仅供参考,该应用程序由一种测验组成:一个欢迎屏幕、19 个问题屏幕、一个结果屏幕;用户可以在问题序列中向后/向前导航,但它们是即时创建和取消的,以最大限度地减少内存占用。无论如何,我认为这个问题与 RAM 访问无关,仅与“硬”、永久、缓存存储有关。
ruby-on-rails - 如何使用 ruby on rails 应用程序进行在线/离线同步?
有没有办法与 Rails 项目进行离线同步?
换句话说,我们的客户正在使用他们的网站来展示照片库,但他们需要能够在没有活跃的互联网连接的情况下做到这一点。在任何时候,他们都可以重新上线 - 并下载任何新数据 - 以便能够继续展示他们的画廊?
谢谢!
javascript - 如何从离线可用的网络应用程序访问在线资源?
我刚刚创建了一个带有缓存清单等的离线可用的网络应用程序。它工作得很好,但我想访问缓存清单中未提及的一些图片,当我在线时它们根本不会出现。
此外,当应用程序离线时,是否有任何简单的方法来加载默认图像?
提前致谢!
编辑:这些图片的路径是从单独的 Web 服务动态加载并保存在本地存储中。
重新编辑:
好的,我找到了解决方案:
只需将以下行添加到缓存清单中:
网络:
*
这将允许 Web 应用程序访问不在 CACHE: 清单文件部分中的每个元素。实际上,如果没有 NETWORK: 部分,则访问被阻止。
ipad - 将 iPad 缓存增加到 50 MB 以上?
我正在使用清单开发离线 Web 应用程序,并且想知道 iPad 上的最大缓存大小。我做了一些测试,在此期间我被问到是否要将缓存增加到 10 MB、25 MB 和 50 MB。所以 50 MB 以下的一切似乎都在工作(我禁用了互联网连接,重新启动 Safari 后我仍然可以浏览网站)。但显然不可能超过 50 MB。只是为了确定:有人知道是否有可能超过 50 MB?
html - 适用于不同设备的可变 HTML5 离线应用缓存
我正在创建一个 HTML5 游戏。该游戏是跨平台的,并且针对具有不同屏幕分辨率的设备具有不同的图形集。质量较低的套装适用于手机,另一套适用于平板电脑和个人电脑。
现在我想让我的应用程序使用 appcache 清单离线工作。自然,我只想缓存所需的图形集,因此我需要根据 User-Agent 字符串选择应该使用的清单文件。
我试图通过iframe有条件地加载 html 文件来欺骗它,但没有运气——缓存只保存在主清单中。
有谁知道如何根据设备选择不同的清单文件?
UPD 在 [Diveintohtml5 Offline Section 1中有一个清单示例:
据我了解,它应该进行延迟加载,并将仅在应用程序联机时请求从应用程序加载的项目添加到缓存中。这个解决方案似乎解决了我的问题,因为我只能加载所需的图形集。然而,在 Chorme 和 iOS Safari 上的实践中,离线缓存除了 offline.html 之外根本没有资源。
html - 从 HTML5 离线应用缓存中省略当前页面,但使用缓存的资源
出于性能目的,我想让我的一些网页使用已缓存以供离线使用的资源(图像、CSS 等),但不让页面本身缓存,因为内容将动态生成。
一种方法是重构我的页面,以便它们通过 AJAX 加载动态内容或在 LocalStorage 中查找内容。细节可能会有所不同,但从广义上讲,类似的东西。
如果可能的话,我更愿意找到一种方法来简单地指示浏览器为页面使用缓存的资源(同样是图像、CSS 等),而不是实际缓存(动态生成的)HTML 内容本身。
有没有办法使用 HTML5 离线应用缓存来做到这一点?我的印象是答案是否定的,因为:
- 包含清单的任何页面都将被缓存,因此我无法在页面本身中指定缓存的资源。
- 没有办法告诉前一个页面“使用其他页面的离线资源,但实际上并不缓存该页面上的 HTML”。您必须指定页面本身,这意味着 HTML 将被缓存。
我错了吗?似乎可能有一些棘手(或不那么棘手)的方法。现在我已经把它打出来了,我想知道是否在NETWORK
appcache 清单的部分中明确地包含该页面是否可以解决问题。
html - IOS5 AppCache 不工作
我的网站switchitoff.net已经愉快地使用 appcache 有一段时间了。它在所有支持 appcache 的浏览器上都能完美运行,包括 Chrome、Firefox、Safari 和 Mobile Safari……除了它在IOS5上失败。
在IOS4上,我可以浏览到我的网站,将其添加到我的主页,然后从新的快捷方式重新启动该网站。在这个阶段,该站点将被缓存,以便我可以从快捷方式脱机运行它。如果我在IOS5中尝试同样的事情,我会得到:
打不开关掉
无法打开关闭它,因为它没有连接到 Internet。
Mobile Safari 调试控制台没有显示任何错误,我不确定如何进一步调试。我不知道这是否是一个线索,但 appcache 状态不断返回为updateready
. 我认为它一定是一个IOS5错误,但没有其他人对此抱怨,所以我想我做错了什么。
顺便说一句,在您开始使用 iPhone 进行测试之前,该网站是为 iPad 和桌面浏览器(好吧,笔记本电脑浏览器)而设计的。它不能在 iPhone 上很好地工作,尽管您仍然可以尝试从主页快捷方式离线运行它并看到它您得到我的错误。
干杯
android - 在android中显示缓存的webview版本
我正在尝试让网站的 HTML5 离线缓存版本在网络在 web 视图内关闭时显示。
我已经覆盖onReceivedError
了 ok,当网络关闭时,这个方法被调用。问题是它显示通用的“网页不可用”消息。
如何让它显示页面的 HTML5 缓存版本?webapp 的离线存储肯定可以正常工作,因为它在 Firefox 和 Chrome 的桌面版本中运行良好。
我知道我可以loadData
手动调用视图onReceivedError
,但我不确定我可以从哪里获取 HTML5 缓存值。
注意:如果我设置了一些虚拟数据,loadData
然后view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");
单击返回(通过检测返回事件并调用webview.goBack();
,则页面的缓存版本显示正常。
这是我为设置 webview 添加的一些代码行:
html - 离线应用缓存 HTML 5
我开发了一个 Facebook 游戏,并使用离线缓存将我的所有数据存储在应用程序缓存中。我在游戏中有大约 100 张图像,我将所有图像都包含在清单文件和字体文件中。这也包括样式表和 JavaScript 文件。
一切正常,但所有内容的初始加载需要很长时间(> 2 分钟)。
有没有办法可以将内容划分到游戏第二页或第三页中的另一个清单,并在该清单文件中加载一些图像?(我的游戏共有 3 页,游戏是使用 HTML 和 jQuery 开发客户端,PHP 开发服务器端)
如何减少初始加载时间,并使游戏流畅运行而不会出现任何进一步的加载问题?谢谢您的帮助!