我正在为我们的客户开发一个离线网络应用程序,旨在以飞行模式在 iPad 上运行,安装在支架上。它没有服务器端动态页面,只有一个静态 HTML 页面,许多 JavaScript 组件来处理导航和交互性,以及一堆小的图形资源。整个网站(静态 html + css + js + 图形)重达 8.3Mb。
我通过offline.manifest
在我的单个 HTML 文件中声明的一个声明来缓存整个站点,这个清单绝对引用了根目录下的所有文件,以便缓存所有需要的文件。
我没有在我的 JS 代码中使用 localStorage、IndexedDB 或其他离线存储技术。除了“自动”缓存之外,我不会在设备上存储任何内容。
因此,请检查我的网络服务器日志,当我的客户端在其 iPad 主屏幕上安装网络应用程序时,它会下载所有文件一次,然后再从我的服务器上下载任何内容。很好,正是他最初想要的:一个完整的离线网络应用程序。
那么,为什么经过我客户的几分钟测试,他的 iPad 要求他“将本地存储从 10Mb 增加到 25Mb”????
仅供参考,该应用程序由一种测验组成:一个欢迎屏幕、19 个问题屏幕、一个结果屏幕;用户可以在问题序列中向后/向前导航,但它们是即时创建和取消的,以最大限度地减少内存占用。无论如何,我认为这个问题与 RAM 访问无关,仅与“硬”、永久、缓存存储有关。