标签: offline-caching

HTML 5 离线存储缓存清单不起作用

我试图让 HTML5 离线存储以一种基本的方式工作。我阅读了有关DiveIntoHTML5的信息,它似乎有道理,但似乎对我不起作用。我想知道是否有人可以帮我调试这个。

基本上我已经为应用程序设置了一个主页,index.htm。所以我的应用程序在网络上http://www.mydomain.com/online/index.htm。用户将访问此页面,在那里他们通常会每天处理所有事情。访问此 URL 将创建一堆缓存文件,以便他们可以访问http://www.mydomain.com/offline并在离线时查看应用程序的工作版本。

在线首页前几行代码是:

<!DOCTYPE html>
<html manifest="cache.manifest">
<head>
   ...etc
Run Code Online (Sandbox Code Playgroud)

我生成了一个名为“cache.txt”的纯文本文件,并在记事本中向其中添加了以下内容:

CACHE MANIFEST
http://www.mydomain.com/offline/scripts/jquery-1.6.3.min.js
http://www.mydomain.com/offline/scripts/jquery-ui-1.8.16.custom.min.js
http://www.mydomain.com/offline/scripts/modernizr.min.js
http://www.mydomain.com/offline/scripts/json2.min.js
http://www.mydomain.com/offline/scripts/jquery.deserialize.js
http://www.mydomain.com/offline/scripts/jquery.cookie.js
http://www.mydomain.com/offline/scripts/main.js
http://www.mydomain.com/offline/css/main.css
http://www.mydomain.com/offline/css/structure-details.css
http://www.mydomain.com/offline/css/ui-lightness/jquery-ui-1.8.16.custom.css
http://www.mydomain.com/img/header.gif
http://www.mydomain.com/offline/img/bg.png
http://www.mydomain.com/offline/img/header_riser.gif
http://www.mydomain.com/offline/img/logo.png
http://www.mydomain.com/offline/img/offline.png
http://www.mydomain.com/offline/index.htm
Run Code Online (Sandbox Code Playgroud)

然后,我将此文件重命名为“cache.manifest”并将其上传到在线应用程序的根目录(与我的主页处于同一级别),以便可以在http://www.mydomain.com/online上访问它/cache.manifest

据推测,托管公司已将“文本/缓存清单”的内容类型添加到 IIS 中扩展名为 .manifest 的所有文件中。我认为这是有效的,因为当我在http://www.mydomain.com/online/cache.manifest在 Firefox 中查看文件时,Firebug 告诉我内容类型是:

Content-Type    cache-manifest
Run Code Online (Sandbox Code Playgroud)

或者这应该返回“文本/缓存清单”?也许这就是问题所在?

当我查看系统上的离线存储文件夹 (C:\Users\Me\AppData\Local\Mozilla\Firefox\Profiles\b12u6xza.default 时,那里根本没有与此域相关的任何内容。

任何人都可以建议可能出了什么问题 - 因为我有点难住?

html manifest offline-caching

7
推荐指数
1
解决办法
8220
查看次数

如何将 Gradle 缓存复制到另一台离线机器上?

我有两台 Ubuntu 16.04 机器。一台已连接到互联网,而另一台则完全离线。我想在离线机器上构建一个Android项目。在线机上,构建成功。因此,我已将整个内容复制.gradle到离线计算机并使用--offline标志运行构建过程。令人惊讶的是它失败了。很多

No cached version of ....
Run Code Online (Sandbox Code Playgroud)

我怀疑这是因为用于为每个.jar.pom等生成散列的散列算法。我认为散列在一台机器与另一台机器之间是不同的。另请注意,我的用户名和机器名在这两者中是不同的。看起来哈希值与用户名有关。我对吗?是否有一个干净的解决方案可以在离线机器上构建项目?

  • Gradle 4.0-bin
  • com.android.tools.build 2.3.0

android gradle offline-caching android-gradle-plugin

7
推荐指数
1
解决办法
2548
查看次数

Django REST api 与 PouchDB 离线同步

我正在开发一个由多个客户端使用的应用程序,该应用程序的主要目标是在线使用。但是一个特定的要求是,它也应该能够离线工作仅适用于紧急情况下的单个客户端和短时间 - 最多 24 小时)。现在我使用 Django REST 框架作为后端和 Jquery/AJAX 前端用于 GET 和 PUT请求,这些请求在后端更新 PostgreSQL DB。现在互联网上的研究很少表明我应该在前端使用PouchDB和/或在后端使用CouchDB。但我的问题是:

  1. 真的有可能吗?
  2. 如果是,那么后端数据库应该使用哪个数据库?
  3. 当离线客户端在线时,我们如何同步在线生成的数据?
  4. 我们可以在客户端机器上缓存一些数据以实现离线可用性吗?
  5. 是否仍然可以将 PostgreSQL 用于后端?(我真的很想用它!)

django synchronization offline-caching pouchdb django-rest-framework

7
推荐指数
0
解决办法
708
查看次数

PhoneGap上的离线地图使用OpenLayers和TileCache

是否有关于如何使用TileCache预缓存地图的已知部分的良好教程,将它们存储在PhoneGap移动应用数据库中并使用OpenLayers加载它们?

我经历了很多教程,但我还没有想出办法一起做所有这些.

mobile-application openlayers offline-caching tilecache cordova

6
推荐指数
1
解决办法
2446
查看次数

如何使用HTML5或Phonegap存储40.000张图像?

我已经搜索了很长时间以便在HTML5中存储大量图像,或者在本地存储并显示它们.

该应用程序是一个产品订购和目录,如电子商务网站,但对于批量订单,而不是最终客户,每个图像是一个产品,这就是为什么需要有40k图像.需要来自销售人员可以在离线模式下使用平板电脑数天,数周,并且只有在连接或想要同步后才与ERP同步.

每个销售人员都有一个专用的Android平板电脑Tegra3四核,32Gb用于该应用程序.但该应用程序还支持桌面上的iPad和Chrome.

但是我遇到了以下限制:

  1. 使用html5离线(app cache) - 这在iOS设备中限制为50Mb,并且难以管理清单文件.
  2. 使用带有base64编码图像的webSQL数据库.相同的大小限制(50Mb).
  3. 将localCache与base64一起使用,再次限制大小(5到10Mb).
  4. 转换我的HTML5应用程序以使用PhoneGap文件AP​​I,但后来我失去了对Windows PC的桌面支持,并且在Web服务方面存在一些问题.

所以也许我错过了另一种方法来做到这一点?

是否有HTML5方式存储大量图像以供离线查看?移动设备不支持FileSystem API,并且能够在移动设备上运行是一项强烈要求.

html5 offline-caching html5-appcache cordova

6
推荐指数
1
解决办法
6611
查看次数

IE 11浏览器在尝试访问App Cached离线页面时显示"您未连接到网络"页面

背景:

我已经建立了一个甚至可以脱机工作的网页.本页面遵循"AppCache"指南.

我的网络浏览器是HP Windows 8平板电脑上的IE11.

当我点击物理服务器(Oracle weblogic)上页面的直接URL时,我就可以访问该页面了.即使我关闭网络连接,也可以通过IE11浏览器访问同一页面.

问题:

当我通过公司网关(F5和OHS)访问同一页面时,当有网络连接时,该页面可用.但是一旦我关闭了网络连接,我就会看到" 你没有连接到网络 "页面.

当我连接回网络并尝试访问同一页面时,我可以看到我的页面请求的资源都是从本地缓存浏览器提供的(我通过IE开发人员工具检查网络).

我不确定发生了什么.即使没有连接,我也想访问我的页面.

注意:

我的网页只能通过网关使用"HTTPS"访问.我直接访问服务器的地方使用'HTTP'

internet-explorer offline-caching offlineapps html5-appcache internet-explorer-11

6
推荐指数
1
解决办法
728
查看次数

用于HLS缓存的AVAssetDownloadDelegate方法未被调用

我已经按照这里给出的HLS缓存教程,但控件永远不会到达任何代理(AVAssetDownloadDelegate).

我错过了什么吗?这是我写的代码

- (void)setupAssetDownloader {
    NSURL *assetURL = [NSURL URLWithString:@"STREAMING_HOST/video/hls/3729170.m3u8"];
    AVURLAsset *hlsAsset = [AVURLAsset assetWithURL:assetURL];

    urlSessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"assetDowloadConfigIdentifier"];
    avAssetDownloadSession = [AVAssetDownloadURLSession sessionWithConfiguration:urlSessionConfiguration assetDownloadDelegate:self delegateQueue:[NSOperationQueue mainQueue]];

    // Download movie
    avAssetDownloadTask = [avAssetDownloadSession assetDownloadTaskWithURLAsset:hlsAsset assetTitle:@"downloadedMedia" assetArtworkData:nil options:nil];

//@{AVAssetDownloadTaskMinimumRequiredMediaBitrateKey : @(300000)}


    [avAssetDownloadTask resume];

    AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:avAssetDownloadTask.URLAsset];
    AVPlayer *player = [[AVPlayer alloc ] initWithPlayerItem:playerItem];
    AVPlayerLayer *playerLayer = [[AVPlayerLayer alloc ] init];
    [playerLayer setPlayer:player];
    [playerLayer setFrame:self.view.frame];
    [self.view.layer addSublayer:playerLayer];
    [player play];
}

#pragma mark - AVAssetDownloadDelegate

- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask …
Run Code Online (Sandbox Code Playgroud)

objective-c offline-caching http-live-streaming ios swift

6
推荐指数
1
解决办法
2100
查看次数

如何在AngularJS应用程序中实现服务工作者以获得离线体验

我正在尝试在我的一个AngularJS应用程序中实现一个服务工作者.基于教程(主要是MDN),我提出了以下实现来将它与AngularJS合并.

首先,因为app.run()似乎是正确的地方.我在我的run块中有以下代码:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('workerFile.js')
  .then(function(reg) {
    console.log('Registration done');
  },function(error) {
    console.log('Registration failed with ' + error);
  });
}
Run Code Online (Sandbox Code Playgroud)

我的服务工作者文件如下:

this.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open('v1').then(function(cache) {
      return cache.addAll([
        'index.html'
      ]);
    })
  );
});
Run Code Online (Sandbox Code Playgroud)

this.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.match(event.request)
  );
});
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我希望我的index.html文件可以缓存并脱机使用.但那还没有发生.在线时,每次为服务器提供文件(在提琴手中看到).

我尝试过更改thisself工作文件.这没有用.此外,我正在测试它,localhost所以我认为它不应该有不安全的浏览问题.我对JavaScript中的Workers概念很陌生,因此没有足够的选项可以尝试.

有人能指出我的错误吗?显然,互联网上的文章并不多.

PS:我参观了这个问题:没多大帮助.

更新:再看一下文档,我相信它在注册时与scope属性有关.我该如何定义此属性以包含我的整个应用程序?我尝试过使用{scope: '/'}它似乎不起作用.

javascript web-worker offline-caching angularjs service-worker

6
推荐指数
0
解决办法
1778
查看次数

Flutter:首次加载时将数据预加载到 Firestore 本地缓存中

我已经在我的 Flutter 应用程序中实现了 Cloud Firestore 并遇到了这个问题:如果应用程序的第一次加载(安装后)没有网络连接,则不会显示任何数据。 我的问题是:即使没有互联网连接,如何才能在第一次加载(安装后)时显示来自 Firestore 的数据?我获取数据的代码是这样的:

class QuestionsListState extends State<QuestionsList> {
  @override
  Widget build(BuildContext context) {

    return new StreamBuilder<QuerySnapshot>(
      stream: _questionsCollectionReference
          .where("category", isEqualTo: _chosenCategory).orderBy("order").snapshots,
      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
        if (!snapshot.hasData) return const Text('');
        final int messageCount = snapshot.data.documents.length;
        return new ListView.builder(
          itemCount: messageCount,
          itemBuilder: (_, int index) {
            final DocumentSnapshot document = snapshot.data.documents[index];
            return new ListTile(
              title: new FlatButton(
                  onPressed: () {
                    Navigator.push(context, new MaterialPageRoute(
                      builder: (BuildContext context) => new AddAnswerDialog(),
                      fullscreenDialog: true,
                    )); …
Run Code Online (Sandbox Code Playgroud)

preload offline-caching dart flutter google-cloud-firestore

6
推荐指数
1
解决办法
3958
查看次数

通过服务工作者离线显示谷歌地图。

有没有办法在离线时通过服务工作者显示谷歌地图。

我已经构建了一个渐进式网络应用程序,它通过服务工作者将所有内容和数据存储在缓存中,以便在使用后可以离线访问,但在我的一生中,我无法缓存谷歌地图然后显示它。

javascript offline offline-caching service-worker progressive-web-apps

6
推荐指数
1
解决办法
3233
查看次数