【问题标题】:Migrating to Meteor/React迁移到 Meteor/React
【发布时间】:2017-05-31 11:12:19
【问题描述】:

是否有人知道任何可用于 Meteor 的资源,可以帮助加载大型 (20MB-80MB) 资产以供(主要)离线使用?

我目前的开发完全是在 Vanilla JS 中(在客户端),我正在考虑构建一个 Meteor/React 版本以提高性能和实践。目前,我的应用程序同时在线和离线运行,并在与 MongoDB 数据库存在连接时同步数据。它最初还动态地将大型资产加载到 IndexedDB 中以供离线使用(实际上视图层仅与本地数据库通信)。整个系统使用 WebSockets 来传输除了初始加载之外的所有数据。大型资产的传输通过套接字稳定加载,因此需要一段时间,但本质上可以下载和暂停和重新启动数据。

是否已经有一些东西可以处理这样的事情?或者有没有更好的方法来下载大型数据文件并将它们安装在本地数据库中?它可能是一个 JSON 文件,但我担心这样做会导致用户的浏览器在尝试一次加载所有数据时崩溃。任何方向或建议将不胜感激。谢谢。

【问题讨论】:

  • 我认为你想要什么在这个 youtube 视频 Google I/0 2016 Building offline-first Progressive Web Appsyoutu.be/cmGr0RszHc8?list=PLyHVYmk4Ww8hUrHgbtLVTNmkT1jFlSOOE中得到了完美的解释
  • 感谢您向我介绍这个视频。它非常有趣。我已经实现了服务工作者来处理 html、css、js 和图像的初始缓存。我不喜欢他们的一点是他们喜欢在他们喜欢的时候结束。相反,我依靠 websockets 来保持连接打开,我使用 webworkers 来处理将大数据处理到本地数据库中,用于初始资产和同步。

标签: javascript node.js mongodb reactjs meteor


【解决方案1】:

据我所知,您正在尝试构建一个可以离线工作的 Web 应用程序。在这种情况下,Progressive Web App (PWA) 是您应该寻找的东西。

其实 PWA 是一个标准,离线工作是核心功能之一。在实践中,PWA 使用service worker 将您的静态资产缓存在浏览器中,并用于将来的加载。但请记住,这项技术仍然是新技术,还不是 Web 开发的标准,因此您应该检查它是否适用于您用户的浏览器。

说到 Meteor,已经有一些尝试让 Meteor 应用离线工作。我知道的最好的两个是meteor-service-workerGroundDB。第一个帮助您在浏览器中缓存应用程序源,最后一个帮助您的数据库在客户端运行。它们都是很好的包,但是我认为它们还不成熟,所以在使用它们之前要三思而后行。

【讨论】:

  • 我不确定我的应用是否完全符合 PWA 的要求。它不适合移动设备,软件的初始安装需要 15 到 45 分钟,具体取决于项目设置(该软件仍然可以使用,只是不能立即离线)。我查看了 GroundDB,但我找不到很多有用的信息。我主要是好奇 GroundDB 之类的东西如何处理大量数据。你知道在 GroundDB 上做过什么测试吗?
  • 您不需要为您的应用程序实现所有 PWA 功能,因为不需要它们,只需专注于离线工作的缓存就足够了。关于 GroundDB,我不知道任何使用它的真实示例应用程序。
  • 我明白了。我当然对来自 Google 的信息很感兴趣。我会通过它,因为它确实适用于我正在做的事情。
  • 只是想知道为什么不简单地使用electron.atom.io,如果你的应用程序需要大约 15m 到 45 来安装显然不是一个普通的应用程序,你可以控制很多环境不会将该应用程序转换为桌面应用程序更有意义?
  • 有趣。我从来没有听说过它,但它看起来是一个非常棒的想法。对于我正在尝试做的事情可能会更好。我一定要检查一下。谢谢。
猜你喜欢
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 2020-07-05
  • 2017-11-03
  • 2022-01-17
  • 1970-01-01
相关资源
最近更新 更多