标签: html5-appcache

IOS Web 应用程序视频缓存播放问题 (mp4)

您好,我在 iPad2 上运行最新版本的 iOS (5.0.1),但无法使 .mp4 视频缓存正常工作

我添加了必要的侦听器来侦听 applicationCache 事件,然后在这些事件发生时写入控制台,最值得注意的是,当我的应用程序被缓存时,如下所示: https: //developer.apple.com/library/archive/documentation /iPhone/Conceptual/SafariJSDatabaseGuide/OfflineApplicationCache/OfflineApplicationCache.html

使用 iPad 上的 mobile safari 中的调试控制台,我可以看到一条消息,表明我的应用程序已成功“缓存”(万岁!)。 当我重新加载页面时,除了视频之外,一切都正常(有一个类似于当您指向不存在的视频源时的图标;带有斜杠的播放按钮)。

在我的 iPad 上检查 Safari 的“网站数据”时,可以看到完整的视频大小(和其他文件)(~28mb)。 这在桌面 Safari(离线时)、Chrome 等中可以很好地缓存。 缓存应用程序时,我收到一条消息“您是否希望允许 www.site.com 增加缓存大于 25mb”,并批准下载/缓存完成。

更疯狂的是,即使我仍然在线,我的 iPad 也指向本地文件,而且我的 iPad 似乎正在尝试拉取本地视频,并且同样的错误仍然存​​在。


我还:

  • 缓存了一个更简单的版本(1个html文件1个视频),同样的问题。

  • 一个 1mb 的视频,同样的问题,所以这不是大小问题

是不是无法在 iPad 上播放缓存的视频?我可以看到 mb,所以我知道它已被缓存,只是无法播放。

video mp4 ipad cache-manifest html5-appcache

5
推荐指数
1
解决办法
1832
查看次数

Android Webview上的Appcache没有下载源代码

我知道我的网络应用程序的appcache工作得很好,因为我已经在Chrome上尝试过,即使在Chrome for Android上也能正常运行,但是当它从我的Android应用程序从webview加载时却没有.我有以下设置:

    myWebView = (WebView) v.findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setDomStorageEnabled(true);
    webSettings.setJavaScriptEnabled(true);
    webSettings.setSupportMultipleWindows(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setAppCacheMaxSize(1024*1024*16);
    String appCachePath = getActivity().getApplicationContext().getCacheDir().getAbsolutePath();
    webSettings.setAppCachePath(appCachePath);
    webSettings.setAllowFileAccess(true);
    webSettings.setAppCacheEnabled(true);
    webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
    webSettings.setDatabaseEnabled(true);
    String databasePath = "/data/data/" + getActivity().getPackageName() + "/databases/";
    webSettings.setDatabasePath(databasePath);
    webSettings.setGeolocationEnabled(true);
    webSettings.setSaveFormData(true);
Run Code Online (Sandbox Code Playgroud)

但是在加载应用程序时,在logcat中我可以阅读以下内容

10-15 01:21:43.815:E/SQLiteLog(14278):( 1)没有这样的表:CacheGroups 10-15 01:21:43.815:D/WebKit(14278):错误:10-15 01:21:43.815 :D/WebKit(14278):应用程序缓存存储:未能执行语句"DELETE FROM CacheGroups"错误"无此表:CacheGroups"10-15 01:21:43.815:D/WebKit(14278):external/webkit/Source /WebCore/loader/appcache/ApplicationCacheStorage.cpp(558):bool WebCore :: ApplicationCacheStorage :: executeSQLCommand(const WTF :: String&)10-15 01:21:43.815:E/SQLiteLog(14278):( 1)没有这样的table:Caches 10-15 01:21:43.815:D/WebKit(14278):错误:10-15 01:21:43.815:D/WebKit(14278):应用程序缓存存储:无法执行语句"DELETE FROM Caches"错误"没有这样的表:缓存"10-15 01:21:43.815:D/WebKit(14278):external/webkit/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp(558):bool WebCore :: ApplicationCacheStorage :: executeSQLCommand(const WTF :: String&)10-15 01:21:43.815:E/SQLiteLog(14278):( 1)没有这样的表:起源10-15 01:21:43.815:D/WebKit(14278):错误:10-15 01:21:43.815:D/WebKit(14278):应用程序缓存存储:未能执行语句"DELETE FROM Origins"错误"no such table:Origins"10-15 …

android webview html5-appcache

5
推荐指数
1
解决办法
2931
查看次数

如何有选择地禁用 Spring Boot 的缓存(manifest.appcache)

从这个问题可以看出,Spring Security 管理 Spring Boot 的缓存。从 Spring Boot文档中,它展示了如何使用以下命令设置资源缓存:

spring.resources.cache-period= # cache timeouts in headers sent to browser
Run Code Online (Sandbox Code Playgroud)

cache-period对于 Spring Boot 的所有预定义静态位置(即/css**/js/**/images/**)来说非常有用,但我还生成了一个manifest.appcache用于离线下载我的静态资产的文件,并且由于上述所有 Spring Security/Boot 都会使用 manifest.appcache 发送回缓存标头

"method": "GET",
"path": "/manifest.appcache",
"response": {
    "X-Application-Context": "application:local,flyway,oracle,kerberos:8080",
    "Expires": "Tue, 06 Oct 2015 16:59:39 GMT",
    "Cache-Control": "max-age=31556926, must-revalidate",
    "status": "304"
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何添加排除项manifest.appcache。无论我的标头如何,IE 和 Chrome 似乎都会对 appcache 进行“正确的操作”,但 FF 似乎在注意到 appcache 发生更改时更加特殊,并且我认为我的缓存标头将其搞砸了。

编辑:我应该从WebMvcAutoConfiguration的源代码中添加它,它显示了如何为资源设置缓存,我只是不确定如何有选择地禁用我的 1 个案例,而不会潜在地破坏 spring boot 在该文件中设置的其余内容。 …

html5-appcache spring-boot

5
推荐指数
1
解决办法
8983
查看次数

从 html 中提取 js 和 css 文件的网址?(使用 node.js)

我想要一个来自 html 字符串的 url 数组,尽管只来自以下标签:

  • 链接 href="http://example.com/foo.css"
  • 脚本 src="http://example.com/foo.js"

我想要这些 url,以便我可以将它们放入 appcache 清单文件中。我使用 appcache manifest builder,但它只分析我在本地提供的静态文件。它运行良好,但它不会自动包含我在 html 中包含的外部静态 js/css 文件。

我希望能够使用 node.js 解析 html 字符串。

html node.js html5-appcache

5
推荐指数
1
解决办法
2161
查看次数

为什么缓存HTML5页面会阻止做Cors请求?

为什么缓存应用程序会阻止Cors请求?

我有一个例子,两个html页面完全相同,除了第二行:

index.html 链接

<!DOCTYPE html>
<html manifest="main.appcache">
Run Code Online (Sandbox Code Playgroud)

index2.html 链接

<!DOCTYPE html>
<html>
Run Code Online (Sandbox Code Playgroud)

为什么没有清单的那个工作正常,带有清单的那个只在第一次工作并且在缓存应用程序时停止工作?(按F5几次)

我测试了Firefox,Chrome和IE.

html javascript jquery html5 html5-appcache

5
推荐指数
1
解决办法
313
查看次数

在HTML5 appcache中缓存php页面

我正在开发一个离线应用程序,它也有一组.php页面.目前我已将这些php文件放在.appcache清单文件中,并且工作正常.但问题是,即使我在线,当我尝试访问php页面时,它会加载缓存版本.我更喜欢的是这样的功能,

  • 如果在线 - 连接到服务器并加载最新信息,并用新信息覆盖缓存的信息.
  • 如果离线 - 显示上次更新的静态html页面.

这是我的.appcache清单文件内容

CACHE MANIFEST
#2
taskmanager.php
public/css/bootstrap.css.map
public/css/bootstrap.min.css
public/css/bootstrap-theme.css.map
public/css/bootstrap-theme.min.css
public/css/main.css
public/css/task-manager.css
public/js/app.js
public/js/taskmanager.js
public/js/offlink.js
public/js/jquery-2.1.4.js
public/js/bootstrap.min.js

NETWORK:
*
http://*
Run Code Online (Sandbox Code Playgroud)

taskmanager.php所做的是从数据库中读取任务并显示它.当我像上面一样缓存它时,它将始终显示第一次加载时的任务列表.即使我在线,它也不会调用数据库并获取新条目.而是从缓存加载.所以,我的解决方案是将它放在FALLBACK部分中,如第一个答案所述.即使我把taskmanager.php文件放在FALLBACK部分下面,如下所示,

FALLBACK
taskmanager.php static_taskmanager.php
Run Code Online (Sandbox Code Playgroud)

现在,如果我有互联网连接,taskmanager.php将运行并将显示最新任务.但是我想以这样的方式创建static_taskmanager,它将与那些最新的任务集同步.这意味着,当用户离线时,static_taskmanager.php将显示当用户在线时taskmanager.php返回的最新任务列表.但目前它作为一个完整的静态页面工作.

  1. 是否有可能做到这一点?
  2. 我该如何解决这个问题?

编辑

正如我通过搜索SO和Google所理解的,实现此目的的一种方法是使用AJAX加载动态内容.但我想知道是否可以只使用清单文件本身.

php html5 offline cache-manifest html5-appcache

5
推荐指数
1
解决办法
1467
查看次数

如何在浏览器中缓存 svg(嵌入为 &lt;object&gt;)

我有一个由多个组件组成的 angular2 应用程序,它在其模板中嵌入了(参数)不同的小 svg 文件。这个选择的原因是我需要与 svg 进行交互并操作 svg 文件的内部 DOM。另外我想引用一个 svg 文件,而不是在模板中的多个位置使用内联 svg,它在组件模板中更干净。

我的问题是这些 svg 文件没有被缓存在浏览器中,并且在加载包含多个组件(呈现这些 svg 文件)的页面时,我注意到在页面完成加载之前有一些小延迟。这远非最佳,如果我不能解决这个问题,我会考虑回到内联 svg。

我的目标是能够让组件模板指向一个 svg 文件,并且当这个组件第一次加载时,它不会从服务器发送,而是从浏览器缓存中检索。希望这将解决我遇到的延迟加载问题。我已经尝试在我的应用程序的根目录中定义一个 cache.manifest 文件(它定义了要缓存的不同 svgs),但是当组件加载时,服务器仍然在每次组件时发送 svgs(和 param.js)加载。!

这就是我构造一个组件模板的方式,它由 svg 符号组成,当我单击 svg 符号时,我会打开一个应包含相同符号的弹出窗口:

<div>
    <!--Header-->
    <div>{{ name }}</div>

    <!--Actual svg symbol Object-param style-->
    <div class="symbolIcon"(mouseup)="onMouseUp()" (mousedown)="onMouseDown()" >
        <object type="image/svg+xml" data="app/mySymbol.svg" >
                <param name='Activate' value={{activate}} /> 
                <param name='Status' value={{status}} /> 
        </object>
    </div>
</div>

<!--Placeholder for Popup-->
<modal-popup *ngIf="loadPopup" (command)="popupCmd($event);">
    <!--Symbol to be placed on Popup (same as in template above)-->
    <div class="modal-startstop-symbol"> …
Run Code Online (Sandbox Code Playgroud)

html svg caching html5-appcache angular2-template

5
推荐指数
0
解决办法
1286
查看次数

HTML5 Web 应用程序不在 iOS Safari 中缓存以供离线使用

我正在使用移动 Safari 和“添加到主屏幕”功能开发一个 HTML5 网络应用程序,以便在 iPad2 上离线使用。我能够在桌面 Chrome 中使用 cache.manifest 文件实现离线缓存,但无法使其在 iOS 移动 Safari 中工作。

该应用程序在线时在 iPad 上运行流畅,但一旦我离线,我会收到以下错误消息:“MyApp 无法打开,因为它未连接到互联网”(在 iPad 上的“添加到主屏幕”视图中)和“Safari 无法打开页面,因为它没有连接到互联网”(在同一台 iPad 上的 safari 视图中)。

我在网上阅读了数百个故障排除/问题页面和清单教程,试图解决这个问题,但没有一个建议有效。在阅读了很多关于此功能的内容后,它应该很容易实现,但我在这里。

这是迄今为止我所做/尝试/使用但没有成功的总结。我已经使用 cache.manifest 和 manifest.appcache 变体尝试了以下所有方法,但没有成功,但为简单起见,我将只记录 cache.manifest 案例:

  1. 我正在使用本地安装在 Win10 x64 上的最新 Xampp Apache for Windows 服务器进行开发和测试

  2. 目标设备是运行 iOS 8.4 版和移动 Safari 8 版的 iPad2。我的完整用户代理字符串是:

    Mozilla/5.0 (iPad; CPU OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在 Xampp 中,我更新了 httpd.conf 文件以包含 .manifest 的正确 MIME 类型 …

web-applications mobile-safari offline-caching ios html5-appcache

5
推荐指数
1
解决办法
2206
查看次数

缓存存储与应用程序缓存

我们如何告诉支持缓存存储的浏览器忽略应用程序缓存?一些帖子提到浏览器会忽略 html5 缓存清单。但我的测试表明并非如此。

例如,如果 html 页面包含:

<html manifest="manifests/hudddle.cache">
Run Code Online (Sandbox Code Playgroud)

并且还有服务工作者代码(此处未显示),我发现这两组文件都已存储。我在 Mac OS X 上的 Chrome 63 上进行了测试。

下面是显示缓存存储的文件图像。

在此处输入图片说明

这是显示应用程序缓存的图像。

在此处输入图片说明

或者我应该在服务器端检查这个并只使用两种缓存方法中的一种吗?谢谢

html5-appcache service-worker

5
推荐指数
1
解决办法
1391
查看次数

ExtJs 应用程序缓存警告

我有一个用 ExtJs 编写的单页应用程序。我没有使用应用程序缓存,但是当应用程序启动时,我在 Chrome 中看到以下警告:

[弃用] 应用缓存 API 已弃用,将于 2020 年 4 月左右在 M82 中移除。有关详细信息,请参阅https://www.chromestatus.com/features/6192449487634432

这个问题已经在 Sencha 论坛(这里这里)上多次发布,可以追溯到几年前。唯一的回应来自一个非煎茶海报,说它“应该没问题”。不完全是您希望的答案。

有谁知道如何摆脱这个警告?考虑到我没有明确使用应用程序缓存,听起来好像 ExtJs 可能在后台用它做一些事情。这就是我所关心的。

extjs html5-appcache

5
推荐指数
2
解决办法
1652
查看次数