3

我正在努力寻找解决方案以使 Angular / C# 应用程序脱机可用的一些细节。
我的想法是使用upup.js获取 Angular 中 SPA 的业务逻辑,可离线使用。upup.js 使用服务工作者来执行此操作。我将使用angular-localForage存储离线应用程序所需的数据,它使用 IndexedDB 并回退到 WebSQL 和 localStorage 以防万一。
问题是,我必须使文件和图像也可以离线使用,而不需要用户访问他们正在使用的页面,我担心最大配额。我可以使用 upup.js 存储它们并将这些文件添加为资产,或者使用 angular-localForage 将它们存储为 blob。如果我得到正确的通知,IndexedDB 现在应该是无限的?我找不到服务工作者的任何最大配额,因为 upup.js 解决方案会使用。AppCache 已被弃用,所以我不会使用它......或者我理解的东西完全错误,或者甚至还有另一个更好的解决方案?无论如何,问题是:

TL;DR:为 AngularJS 离线应用程序存储文件的更好方法是什么:angular-localForage(IndexedDB 等)或 Service Worker(upup.js),每个解决方案的最大配额是多少?还是有更好的解决方案?

4

1 回答 1

2

在我看来,Service Worker (SW) 比传统的本地存储要好。Plus SW也可以使用indexedDB。

对于实施,它非常依赖。您的应用程序结构如何,您的 Angular 应用程序使用了哪些前端技术,您使用 SW 的主要目标是什么……?


1. 传统的 JS 加载,你很可能将所有的 JS 文件合并为一个......就像app.js包含所有内容一样。

而且您也不关心推送通知,也不关心 SW 提供的任何其他酷功能。

=> 对于这种情况,它似乎upup.js最适合您。

注意:请注意upup.js尝试自行注册 SW,因此它可能会阻止或复杂化您扩展 SW 功能的工作。


2. 高级 AMD 用户,几乎所有的 JS 都被切成小块……比如fooCtrl.js, barCtrl.js, 等等……

当然,您不想配置 100 多个 JS 文件,而且您将需要加载大量的 html 模板。

=> 在这种情况下,我建议您使用sw-toolbox. 谷歌制作的一个非常强大和轻量级的工具。最初,如果您还不熟悉 SW 概念,那么在为您的网站设置它时会有些麻烦(但不会超过您成为高级 JS 开发人员的一天)

毕竟配置好了,一切就变得那么简单了。例如,这就是我在我的站点中缓存所有静态内容的方式。

self.toolbox.router.get(/(.js|.css|.png|.jpg|.json|.html)/, self.toolbox.fastest);

3.你不在乎前端是什么样的技术。你只是对 SW 感兴趣。

=> 简单地去做,因为sw-toolbox它是基本配置的真正节省时间。而如果你想扩大SW的使用范围,你可以按照自己的意愿来扩大它。

于 2016-05-13T10:35:48.833 回答