Mongodb Meteor JS支持离线存储/缓存吗?

Mongodb Meteor JS支持离线存储/缓存吗?,mongodb,meteor,offline,offlineapps,offline-browsing,Mongodb,Meteor,Offline,Offlineapps,Offline Browsing,Meteor JS支持离线存储/缓存吗 从我读到的:: 相反,在客户机上,集合是 数据库这要归功于Minimongo图书馆和 在内存中,所有的JS都是MongoDB API的实现 内存中的部分似乎否定了脱机工作。我错了吗 编辑:我所说的“离线”是指尽可能多的这些品质: 即使没有互联网连接也可以加载应用程序,显示用户的数据 脱机编辑,稍后同步,即使脱机(例如数小时) 脱机加载应用程序时,还应显示尚未同步的编辑 EDIT2:我想合适的术语应该是先离线。这个功能不是现成的。即使您对客户端进行了更改

Meteor JS支持离线存储/缓存吗

从我读到的::

相反,在客户机上,集合是 数据库这要归功于Minimongo图书馆和 在内存中,所有的JS都是MongoDB API的实现

内存中的部分似乎否定了脱机工作。我错了吗

编辑:我所说的“离线”是指尽可能多的这些品质:

  • 即使没有互联网连接也可以加载应用程序,显示用户的数据
  • 脱机编辑,稍后同步,即使脱机(例如数小时)
  • 脱机加载应用程序时,还应显示尚未同步的编辑

EDIT2:我想合适的术语应该是先离线。这个功能不是现成的。即使您对客户端进行了更改,这些更改也会反映在客户端中,但一旦与服务器建立了连接,服务器数据将覆盖更改

您必须手动推送数据。一种方法是使用浏览器的本地存储。您可以将数据保存在本地存储器中,并在建立连接后将其推送到服务器中,以使更改“永久”


正如评论中指出的:Meteor将尝试继续调用该方法,直到使用
Meteor.call
重新建立连接,但一旦关闭该选项卡,客户端中的数据将丢失。因此,请确保数据在关闭选项卡后仍然有效,并将其存储在本地存储器中。

关于Minimongo的“内存”部分的担忧是正确的。但在离线设备上,这并不像看上去那么糟糕:只要应用程序保存在内存中(即,通过浏览器打开时坐在选项卡中,或作为Cordova打包应用程序打开时不强制关闭),你的Minimongo就可以生存并保留你的数据

但是,如果浏览器选项卡关闭,或者Cordova应用程序从设备内存中取出(即,用户通过任务切换程序/应用程序管理器强制关闭,或者Android内存不足,需要关闭未使用的应用程序。这也意味着只需返回主屏幕即可将应用程序保留在内存中),然后是你的Minimongo(及其数据)他走了


但是也有一些包可以处理这个用例。请参见

如果更改是通过Meteor.call进行的,它们确实会反映在客户端(乐观用户界面),但实际上客户端也会将方法调用发送到服务器,直到成功或应用程序关闭(并在使用Cordova的设备上从内存中取出)。它将停止尝试,当用户关闭该选项卡时,要输入的数据将丢失。OP的要点似乎更多地出现在混合应用程序上,而不是通过浏览器访问。混合应用程序会比浏览器选项卡更频繁地从设备内存中退出。好的!谢谢你的指点。我会读更多关于这方面的内容。谢谢