问题标签 [application-cache]
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 - Ttitanium webview 和 HTML5 应用程序缓存
我正在使用 Titanium 为 Android 创建一个应用程序。该应用程序使用 webview 加载外部 HTML5 网页。网页使用清单来缓存页面和一些资产。这适用于 Android (Chrome) 中的桌面浏览器和第三方应用程序浏览器。
当我在 Titanium 构建应用程序的 web 视图中查看页面时,似乎没有使用清单,页面只是从服务器加载所有内容。当我使用手机的内置浏览器(HTC one X)时,也会出现同样的问题。
我想要完成的是页面离线可用,因此不需要互联网来查看缓存页面。是否有解决此问题的方法,或者我应该转向另一个方向来解决我的问题?
清单文件:
javascript - iOS 上的 AppCache 非常慢
我正在开发一个使用应用程序缓存的网络应用程序,并且在桌面浏览器和 Android 上一切正常(即使是非常旧和慢速的 android 手机)。然而,在 Safari 和 Chrome 的 iOS 6 上下载 appcache 需要的时间要长得多。
我的应用程序缓存总大小只有 2.1Mb,而且我有一个非常稳定的 70Mbps(下载)互联网连接。我希望缓存会很快。
到目前为止,这是我的时间:
- 桌面 Chrome:<1 秒 (Safari 和 Firefox 的时间相似)
- Android 2.3.3 Stock Browser:~4s (Chrome 和 Dolphin 的时间相似)
- Android 4.2.2(模拟):~7s(在PhoneGap应用程序中运行)
- iPhone 4S 6.0 Safari:8 分钟!!!(在 iOS Chrome 中也差不多!!)
- iPad 2 6.0 Safari:同上!!!
所有这些设备都使用相同的 wifi 和互联网连接,我的 iPhone/iPad 运行良好(没有本地应用程序出现互联网速度问题,常规网站加载正常)。在 iOS 下似乎有一些东西绝对会降低 AppCache 的下载速度。
在window.applicationCache.status
这段时间内appCache.DOWNLOADING
,我有一个progress
事件正在运行,在下载文件时对文件进行计数,所以我确定它没有卡在其他地方。这似乎只是下载所需的时间。是什么赋予了?
附录:iPhone 运行起来也非常热,并且在此操作过程中电池电量会很快下降。在此下载过程中,似乎有什么东西导致 CPU 完全耗尽。
(注意:由于我们仍处于私人测试阶段,因此我无法在此处发布指向网络应用程序的链接,但如果您需要先查看它,然后您认为您可以帮助诊断它,请发送电子邮件至我的个人资料中的地址,我将发送一个指向该应用程序的链接)。
html - 打包混合应用时可以存储 HTML5 的应用缓存吗?
我正在开发一个混合应用程序。
它将从我的服务器中获取内容,并且我将使用应用程序缓存来解决性能和流量成本问题。
即使我使用应用程序缓存,用户第一次打开页面时也必须下载网页。
我想在将应用上传到谷歌播放和苹果应用商店之前存储应用缓存。
然后,如果打包后页面没有更新,应用程序只会检查清单文件。
我可以将应用程序缓存存储在混合应用程序中吗?如果是这样,我在哪里可以获得操作文档,或者我该怎么做?
先感谢您!
ps:我会用phonegap打包webapp。
html - Android 中的 PhoneGap 应用程序没有使用 HTML5 应用程序缓存
Android 中的 PhoneGap 应用程序没有使用缓存文件。但是 HTML5 应用程序缓存已启用并正确触发事件。
我有一个网站使用 HTML5 应用程序缓存:
索引文件:
css 文件:
应用缓存文件:
它在 Chrome、iOS Web Broswer、iOS 中的 PhoneGap、Android 2.1 Web Broswer 中运行良好。但它在 Android 的 PhoneGap 中不起作用!
我使用命令行创建了 Android PhoneGap 应用程序,只需将启动 url 修改为我的网站。应用程序将正确触发应用程序缓存事件:
我没有修改cache.appcache
文件!并且事件显示缓存没有修改。但它不使用应用程序缓存。它出什么问题了?
html - HTML 应用程序缓存到期
我被要求建立对我一直在处理的某些内容的离线访问,并且只是想知道......缓存是否会过期,如果是这样,是在一定的持续时间之后,还是取决于设备?
我的主要关注点是 iPad,如果它有所作为的话。
谢谢
html - 显式与主条目
我目前正在构建一个简单的框架,允许开发人员动态、模块化、简单地创建应用程序缓存,并减少错误输入的资源。
我现在正在处理的一件事是什么是“更强”——主条目还是显式条目?例如,当我列出三个资源时
并且这些页面中的每一个都包含manifest
属性和用户导航到所有这些页面,它们被视为主条目还是显式条目?prefer-online
当开发人员使用设置时,它会对应用程序的行为产生巨大影响。
我知道我可以很容易地测试它,但我没有在规范中找到它的描述,所以每个浏览器都可以以不同的方式实现它......我错过了规范中的任何内容吗?或者这里有工作组的任何人可以回答我的问题吗?提前致谢。
iphone - 将 NETWORK 部分添加到 HTML5 清单文件并以飞行模式访问 iPhone 网络应用程序
事实
我正在构建一个具有离线模式的 HTML 5 响应式网站。为此,我使用带有 FALLBACK 部分的清单文件和浏览器的 localStorage 来存储用户决定保存以供离线访问的页面。
一切都在桌面或 iPhone 上运行良好(尚未在 Android 上测试过),除非我在清单文件中添加了 NETWORK 部分。
为什么我需要 NETWORK 部分?我需要它来让 Google Analytics 工作——否则我网站的用户将不会被跟踪,即使用户在线(这就是 HTML5 applicationCache 的工作方式)。所以这确实是强制性的。
在桌面上,这不是问题,我可以关闭 Internet 连接,网站以离线模式运行。
但是,在 iPhone 上,如果我关闭 Internet 连接(例如打开飞行模式),一旦添加了 NETWORK 部分,我将无法启动 Web 应用程序(意味着我的网站已添加到主屏幕)到清单:iOS 提示我打开 Internet 连接,并且应用程序正在关闭。如果清单文件中没有 NETWORK 部分,则一切正常。
我的问题
是双重的:
1)虽然我可以理解这种行为背后有一些逻辑,但对我来说,如果有最轻微的访问尝试,你就不能让 iOS 网络应用程序在离线模式下工作,这似乎很奇怪(嗯,几乎难以置信)网络 - 我已经阅读了大量关于 iOS 上的 applicationCache 的教程,但没有人提到 NETWORK 部分与飞行模式不兼容。 那么,有没有人可以确认(或确认)我正在经历的事情?
2)如果确实存在这种不兼容,我能想象的唯一解决方法是在服务器端动态构建清单文件,仅为桌面用户添加一个 NETWORK 部分 - 但这意味着忘记跟踪移动在线用户,这是不可接受的。 那么,有人有更好的主意吗?
php - 动态站点的应用程序缓存
我正在制作一个 php mysql 网络应用程序,我的想法是在客户家中安装一个网络服务器,这样他们就可以连接到他们想要的任何设备,可能大部分时间他们将使用 ipad 连接到应用程序。
有时客户端需要在 ipad 中取出应用程序,因此在放弃其他选项(如 phonegapp 因为我需要为某些功能维护一个 mysql 数据库)后,我意识到应用程序缓存可能是一个很好的解决方案:他们可以使用带有 Web 服务器的应用程序(使用数据库功能,如随机化内容、生成统计信息),当它们离线时,它们可以访问内容的本地副本,功能有限但可以正常工作。
我遇到的问题是该站点有图像、视频和音频,所以至少有 20mb 需要缓存,我读到使用应用程序缓存只能存储 5mb,另一个问题是我的内容是动态的,所以我无法添加所有我需要缓存清单的文件。我想要制作网站的 wget(保存静态 html 文件)并在在线时使用动态内容。我不知道我能不能做出这样的东西。
谢谢
html - 应用程序缓存错误事件:清单提取失败 (404)
我已经有一个站点,为此我使用带有应用程序缓存功能的 jquery mobile 创建了一个移动站点。(两者都有相同的网址)
使用 apache2 userAgent 设置,我重定向到(Android 和 Iphone)的移动站点。
当它重定向到移动网站时,我收到以下错误:
应用程序缓存错误事件:清单提取失败 (404)
测试清单
例子:
主站点: www.example.com/
移动网站 www.example.com/
www.example.com/test.manifest 直接打开,但使用重定向它随机给出 404 错误。
请提出任何解决方案。
google-chrome-extension - 带有 chrome 扩展的本地(沙盒)文件系统上的 CRUD 文件
我一直在尝试使用 chrome 扩展对本地驱动器进行一些 CRUD 操作。我知道我将无法直接访问本地文件系统,沙盒环境就可以了。
LocalStorage 适用于高达 5 mb 的数据。我会需要更多。我发现设置“unlimitedStorage”不会为 LocalStorage 授予更多权限。
“无限存储”
为存储 HTML5 客户端数据(例如数据库和本地存储文件)提供无限配额。如果没有此权限,扩展程序或应用程序将被限制为 5 MB 的本地存储空间。
注意:此权限仅适用于 Web SQL 数据库和应用程序缓存(请参阅问题 58985)。此外,它目前不适用于 http://*.example.com 等通配符子域。
然后我尝试使用FileSystemApi。但事实证明,只有 chrome 应用程序才能使用这个 api。
据我所知,我还有 4 个其他选择:
我有一种预感,indexedDb 将允许某种形式的 CRUD。我不愿意使用 WebSQL,因为它已被弃用,而且我还没有找到有关应用程序缓存的信息,尽管我怀疑为扩展存储数据是否在其预期目的范围内。
chrome 扩展是否可以在本地文件系统上保存、加载和删除文件?我是否对 LocalStorage 限制或在 chrome 扩展中使用 fileSystem Api 有误解?IndexedDB 能满足我的需求吗?