【发布时间】:2014-05-05 17:31:04
【问题描述】:
我最近制作了一个广泛利用应用程序缓存的 Web 应用程序。它缓存了大量数据(大约 600 个请求和大约 50 兆字节)。内容是静态的,所以 4-5 分钟的下载时间是可以的。
但是,一旦清单发生更改并开始新的数据下载,我希望在整个页面加载过程中也保持下载过程的运行(当用户浏览 Web 应用程序时)
目标平台是 iOS (iPad),并且 safari 会在新页面加载时继续重新开始下载过程。
然而,在 Android 上,下载在整个页面加载过程中进展顺利。任何人都知道如何在 iOS 中实现同样的功能?
【问题讨论】:
-
我要尝试的事情是在 JS 中捕获所有 href 并触发 xhr 请求,然后将响应注入到已加载的 DOM 中。对这种方法的意见?
-
你有这个最小的测试用例吗?对我来说这听起来像是一个错误。
-
不确定我是否同意这是一个错误。毕竟 webapp 正在加载新页面。我认为它只是 Android 上的 Chrome 很聪明,并将应用程序缓存活动生成到一个单独的线程并让它在引擎盖下运行..
-
我想我会解释我什么时候做的,以防有人被这个线程绊倒。上面概述的 XHR 方法效果很好(首先尝试过),但最简单的方法是创建一个包装器起始页,其中只包含清单引用和一个包含“旧”起始页的 iframe。当用户点击 iframe 中的链接时,仅重新加载 iframe 内容,manifest 继续下载
-
您可能会将其作为回答而不是对未来访问者的评论。
标签: javascript ios html html5-appcache application-cache