HTML5 -如何离线工作的资源是远程的,但缓存在清单

HTML5 - How to work offline with resources that are remote but cached in manifest?

本文关键字:缓存 存在 资源 何离线 离线 HTML5 工作      更新时间:2023-09-26

HTML5 manifest允许指定资源的绝对链接,例如:

缓存清单

http://www.xerox.com/downloads/usa/en/x/xes_3000Series_Brochure.pdf

Chrome/Safari控制台日志显示文件缓存正确,因为它在manifest文件中指定。但是如何在iOS/Android上脱机访问该文件?我把链接放在页面上,就像在清单,绝对URL,当我在线时,它打开,在普通模式浏览器打开应用程序,但链接到pdf不工作,它说需要互联网连接,可能是合乎逻辑的,因为链接是绝对的,但我希望它会先检查清单。

也许有一些方法可以使用javascript访问manifest缓存项目,并提供链接到文件作为缓存中的一些实例,换句话说,使其像具有亲属url的项目一样工作,这不会导致任何问题。或者其他的变通方法。请告诉我,我错过什么了吗?

更新:我正在使用jQuery移动框架,也许这也会有所帮助,也许有人已经处理过了,但我没有找到任何有用的关于这个问题的文档和官方论坛

您不能直接访问该资源。AppCached文件只能从<html>标签中包含给定清单的页面中访问。

当您访问PDF时,您离开了原始页面,并且浏览器(正确地)忽略了清单。

只是一个想法,你试过将PDF嵌入<iframe>吗?

最好能够在浏览器中打开pdf,并根据用户需要选择不同的阅读器。经过进一步的检验,我得出结论,你说的是错的,虽然最初的想法是你是对的。即使你在manifest中设置相对url,当你在链接中使用相对url时,结果url无论如何都会成为浏览器的绝对url,考虑到该应用程序是缓存的,但我可以直接访问该文件。相对url没有问题的原因是它是小尺寸的图像,现在我正在处理大尺寸的pdf。我的结论是,不管你使用的是相对url还是绝对url,你都可以访问缓存中的文件。问题是iPad和iPhone的缓存限制为5Mb,如果manifest文件比设备要求的要大,那么它会完全停止缓存过程。所以我想我需要看看部分缓存的一些解决方案5Mb在一个部分和动态清单。所以现在它变成了一个不同的问题。哇!我以为这会更简单,该死的pdf))