流星的应用程序如何可以脱机工作?流星的应用程序如何可以脱机工作?(How can Meteor ap

2019-05-13 12:27发布

这是当有用:

  • 服务器关闭和客户端无法连接实时同步
  • 没有互联网连接
  • 用户不希望去网上,但希望与应用工作;

Answer 1:

是! 这是在流星已经实施,在大多数情况下。

如果到服务器的连接丢失,客户仍然可以在本地运行。 数据库写入会出现在客户端上取得成功,并在屏幕上即时反映。 一旦连接重新建立与服务器的结果流星将重新发送所有未决方法请求到服务器和更新客户端显示。 这是延迟补偿所有的结果,是离线就像服务器只是被很慢处理。

客户可以监视反应性的“Meteor.status()”输出以查看当前连接的状态。 例如,你可以使用Meteor.status驱动弹出一个重新连接定时器和一个“现在连接”按钮,如Gmail。

编辑:当然,流星是不是魔术。 如果你打的“刷新”,或从浏览网页等,距离下线,你会失去你的流星会议,不能够,直到你重新获得网络再次启动。 这是所有互联网应用与离线模式,虽然如此,所以它不应该作为一个惊喜给你的应用程序的用户。



Answer 2:

还有另一对夫妇的可能解决“如果你的标签关闭,或者重新加载”的问题的选项。 我还没有尝试过,但还没有看起来有趣。

https://github.com/awwx/meteor-offline-data :

流星离线数据

流星离线数据项目的家庭,实施了“离线收藏”,它封装了Meteor.Collection:

从服务器的数据永久存储在浏览器数据库,使其可用于应用程序即使在应用程序启动下线。

用户所做的更改也将保存在浏览器数据库,保存他们,如果浏览器被关闭并重新打开。 该应用上线的下一次更改发送到服务器。

更新跨浏览器窗口在同一个应用程序中打开被动共享,即使在脱机状态。

和https://github.com/GroundMeteor/Meteor-GroundDB :

特征:

光足迹

广泛的浏览器支持Chrome,Safari浏览器,Firefox和Internet Explorer 9回退到正常Meteor.Collection如果方法收集简历的变化没有localStorage的简历作品为SmartCollection支持离线客户端离线更新交叉窗口选项卡只支持数据库使用EJSON.minify和EJSON.maxify在localStorage的未来压缩数据会出现在服务器端的一个可定制的冲突处理程序



Answer 3:

该行的底部:

1)无论是浏览器可以充分节省了实际会话(每隔多久?每次应用程序请求,因为得到了改变。对于这样的应用程序,每10秒是不够的,我们需要每一个事件)。 我们可以设定它让我们说的Firefox? (但是,如果需要保存一切(HTML,JS,MinoMongoDB等只是一个改变!)

2)或者,我们有一个客户端的全面流星栈照顾本地的东西(它自己的本地应用程序),但不知其通信CRUD操作到另一个在线应用程序在浏览器的另一个选项卡或实例。 (即第二应用程序将通过实际远程服务器提供服务)的问题是,如果这样的2级的应用程序可以进行通信。 我想浏览器将禁止出于安全考虑)

另一个比较有创意的想法可能是:激活OPLOG在客户端的堆栈。 然后,每一个回网上不断在网上的时候,实际的客户端的OPLOG可以出口/在主应用程序导入(这是另一个OPLOG日志)

3)除非我们可以将通话()从客户端的流星全栈请求到服务器上的其他流星堆栈。 (这可能吗?有没有关于流星URL域限制的一些规则)

不过,这并不具有固定在平板电脑上完全流星堆栈的可能性(我不知道shuch的事情是可能的)



Answer 4:

我不是专家,但让我们设想一个解决方案:

不是在平板电脑/单元(不知道我们可以安装这种设备上的流星栈),但在桌面上,用户需要的离线功能,如销售,一些交易记录,在有限的或不是最新的产品的点列表,定价和库存等。(用股票不是物理本地事务,应该是«待确认(离线顺序)»(具有股票地点可能即使已经通过离线为了保留出售,他们AR不知道的,因为他们或其他用户处于离线状态,特别是如果用户具有股票是一个离线)

旁边的是,有些功能可能只能在线(使用其他流星Web应用程序)使用

敏影像创作,一些交易,需要全额征收搜索等离线功能将通过本地计算机网络服务器的工作有已安装了本地工作满堆叠流星:当然,不是应用程序的所有部分可以离线使用。

OPLOG将同步集中的服务器,每个用户一个特定的DB对这些离线DB到镜像集合,因此用户的计算机上不是所有的大数据可脱机使用。 这样做是为了维护某些功能的可用性。 否则,我们只能有一个数据库对所有用户的离线交易,但OPLOG将同步所有用户的离线数据库中的所有这些交易。 我们可以邮政和尽快清除这些记录,但出于隐私不好。 最好的是,客户端的离线DB - 和镜像一个集中的服务器上 - 只包括由该用户或信息创建的记录用户可能需要每个用户因此一个特定的数据库。

中央服务器端功能会定期验证和发布这些记录所有用户包括集中式数据库越大。

一个简单的方法:用本地脱机流星应用程式执行的所有交易,将交易信息,为web服务时可用。 (这样一来,用户就不必使用2个应用程序,来回管理。)

我们可以使用2发票编号的概念:销售发票号码:在交易时生成(文档ID?)

顺序发票号:会计目的,以后生成(。在线时和15文档20秒老,我们肯定知道,在那个时期创建的所有新发票)

这里的想法是有一个本地流星堆取本地持久性的汽车,OPLOG与集中持久性同步(除非我们在线时发送的交易发布asynchrone Web服务调用,但我们失去与较大的DB辛克汽车)

(毕竟,也许更好的有2个应用程序运行:在当地,一个中心服务和办法让这两个一起讨论,或在网上和一个舒适的方式离线应用引导用户使用优先在线之一,离线之一,如果离线)

将是一件好事,如果更多的人见地的社会评价和记录工作方式。 我没有在基本学习过程中还使用流星,还是。

谢谢,



文章来源: How can Meteor apps work offline?