问题标签 [offlineapps]

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.

0 投票
1 回答
678 浏览

firefox - 火狐。内存/离线缓存设备

我开发了一个 smartgwt 应用程序。它应该在离线模式下工作。但我有一个问题。有一个 app.nocache.js 文件,它不想从 Firefox 的离线缓存设备中获取(参见 Firefox 中的“about:cache”)。它被放置在浏览器中的内存缓存设备和离线缓存设备中。它只能从内存缓存设备中获取。如果我切换到“脱机工作”,则无法读取此文件,我只会看到灰色屏幕。除了 app.nocache.js 之外,我的“offline.manifest”的所有文件都可以从离线缓存设备中获取。为什么有些文件被放入内存缓存设备?我怎样才能防止这种情况?

提前致谢。

0 投票
1 回答
640 浏览

jquery - 未来与PhoneGap

我在PhoneGap,HTML5,JQuery,WorkOnLine和OffLine的项目中工作,我想知道我PhoneGAP是否是为公司开发软件的好选择,主要是PHONEGAP是否提供了Storage API(webSQL)将长期维护o我们将来必须更改我们的应用程序并使用其他API / System来拥有SQL存储系统。这个问题是因为我想要一个功能强大且可靠的存储系统,并与 PhoneGAP 等 CrossPlatform 兼容,并且将来我的应用程序将与新的存储 API 兼容。

选项?:API 存储 PhoneGAP、YDN-DB、PersistenceJS、...

当我想要一个未来(几年)的应用程序时,哪个是最好的?

提前致谢。

0 投票
1 回答
1120 浏览

html - HTML5 AppCache:如果服务器不可访问但网络可访问,如何实现离线模式

根据设计,如果客户端设备离线或客户端设备在线且服务器可访问,则 HTML5 离线支持 (AppCache) 有效。之后,当设备无法访问互联网时,我缓存了应用程序并在浏览器中重新打开它(刷新它),浏览器从 AppCache 加载应用程序。在这种情况下,浏览器不会尝试获取 appcache 清单(它知道我们处于离线状态)。

但是让我们考虑一下我的设备未离线的情况。它仍然有互联网连接。但是我的服务器宕机了。这可能有很多不同的原因(硬件故障、AppPool 停止、IIS 限制、DNS 错误等)。在这种情况下,当我在浏览器中打开缓存的应用程序时,它会尝试获取 appcache 清单并得到 404 错误(未找到)。之后,浏览器会清除应用程序的 AppCache!所以在下一次运行时,它不会从 AppCache 加载它并显示 404 错误“页面”。不再需要离线工作。

离线模式的功能取决于无法访问服务器的原因,这对我来说看起来很奇怪。作为用户,我为什么要关心(没有互联网连接或服务器已关闭)?

所以我的问题是:当设备在线但无法访问其服务器时,是否有人知道使应用程序工作的任何方法?
理想情况下,我应该能够捕获 window.applicationCache 的错误事件并告诉它“没关系,请继续使用缓存,不要废弃它”。

0 投票
0 回答
432 浏览

cordova - Phonegap android离线外部网页

我正在使用 Phonegap 和 Jquery 编写一个应用程序(对于 Android 来说,所以只是为了添加对其他平台的支持),我想知道缓存外部网页的最佳方式。

事实上,我的应用程序将有一些指向外部网站(如雅虎或谷歌)的链接,我想让这些链接在用户没有连接时可供用户使用。

我已经实现了一种将 html 文件存储到文件系统的简单机制,但我希望支持 CSS 文件。

我的问题是我执行以下操作:

  • 下载 html 页面(使用 phonegap filetransfer 对象)。
  • 解析 html 以获取 css 参考
  • 构建指向 css 文件的 url,以防它们没有与绝对链接链接
  • 再次使用 phonegap 检索所有 css 文件。

如果初始 url 中存在 http 重定向,因为我为 css 生成的 url 出错,这将无法正常工作。

是否有人已经实现了对外部页面的支持并且可以分享其最佳实践或有一些提示来检索重定向的 url 以解决我的实现问题?

非常感谢

此致

弗洛朗

这不是真的很好,因为

0 投票
3 回答
15784 浏览

offline - Firebase 是否允许应用以离线模式启动?

我正在考虑使用 Firebase 使用 PhoneGap 和 HTML5 应用程序缓存编写移动应用程序。

让我们假设每个用户都有一个 TODO 项目列表。如果应用程序在手机离线时启动,它是否能够从上一个会话中加载数据并在建立连接时同步?如果是这样,我想知道这是如何实现的,因为我在 firebase.js 中找不到对 localStorage 的引用。

0 投票
1 回答
285 浏览

html - 如何使用动态缓存清单处理浏览器刷新

这是我的场景:

一个网站有一个索引页面和许多内容页面(为了论证,这些页面被称为 page1 到 page100)都指向同一个缓存清单 URL。

索引页面列出了所有内容页面,并让用户选择他想离线查看的内容(为了方便,假设他选择了第 1、2 和 3 页)。然后,他单击“下载”按钮,该按钮反过来回发相同的索引页面,但这次缓存清单是动态生成的,并将所选页面作为显式包含在内,因此它们都被下载到离线缓存中。然后他可以离线并查看所有页面,到目前为止一切顺利!

现在让我们说,在他下线之前,他进入 page2 并点击了浏览器刷新按钮。这将导致重新获取缓存清单。此时缓存清单没有上下文,因此它无法包含第 1 页或第 3 页的任何显式条目。因此,他现在将 page2 作为主条目(也可能是显式条目),但已从离线缓存。

谁能想到一个明智的方法来解决这个问题?我想知道每个页面都有一个单独的缓存清单 URL,但这感觉不对。

0 投票
1 回答
213 浏览

html - HTML5 应用程序缓存问题

Chrome 版本(在多功能框中输入 about:version):24.0.1312.57 m 操作系统(Windows 7/8/Vista/XP、Mac、Linux、Android、iOS):Windows 7 扩展程序(在多功能框中输入 Chrome:extensions):无/全部禁用

我在使用 html5 应用程序缓存功能时遇到问题。一旦关闭窗口,我就会丢失应用程序和 web sql 的内容。如果我在同一台上,一切正常,但是当我关闭窗口并键入应该根据应用程序缓存选择文件的 url 时,它不起作用,并且当我通过开发人员工具检查时一切都是空的。

可能的问题是什么?

-sk

0 投票
1 回答
163 浏览

html - 将参数传递给离线缓存页面不起作用

我正在制作一个 HTML5 离线应用程序,它当然使用“清单”文件来告诉浏览器要下载的页面,问题是当我调用以前缓存的页面在 URL 中传递参数时它不起作用......它如果我在清单文件中包含带有参数的全长 URL,则可以使用。有人遇到过这个问题吗?有没有办法超越这个?

0 投票
1 回答
242 浏览

c# - 通过 javascript 从移动应用程序向服务器传递正确的日期

我正在尝试使用 PhoneGap 创建一个移动应用程序。我需要应用程序在断开连接模式下工作。所以我在本地存储数据,当连接变为在线时,我将其与远程数据同步。要执行远程同步,我需要将 lastmodified 日期传递给服务器,以便它知道将哪些更新推送到客户端。问题是服务器时间和客户端时间不同。事实是服务器日期,所以我需要能够以某种方式在服务器上解释客户端日期以与服务器日期一致或从客户端传递服务器数学日期。关于如何做的任何建议?我正在考虑使用

来自javascript并基于此调整客户端日期。但这在日光节约方面存在问题。有什么建议么?服务器是一个 ASP.NET MVC 4 站点

0 投票
2 回答
204 浏览

javascript - 离线 Web 应用程序句柄保存在 javascript 中

我正在构建一个离线 Web 应用程序,我希望能够在用户保存之前更改页面的 html。因为我似乎找不到从 javascript(IE 除外)触发另存为功能的方法,所以我需要在让浏览器保存页面之前做一些准备工作。我不是试图强迫用户做任何事情,只是试图更新页面,以便将其状态保存到正在保存的页面的实际 html 中。我可以用一个按钮来做到这一点,但我必须要求用户按下 Ctrl+S,这根本不流畅。

所以我要么需要能够从 JavaScript 触发浏览器保存,要么在允许默认回调发生之前自己处理保存事件。

这可以以跨浏览器支持的方式完成吗?我已经找到了几个处理这个问题的页面,但是没有一个像我希望的那样清除它,如果这听起来像重复,那么抱歉。