Meteor-JS 是否支持离线 storage/cache?
Does Meteor-JS support offline storage/cache?
Meteor-JS 是否支持离线storage/cache?
根据我正在阅读的内容:https://guide.meteor.com/collections.html :
Instead, on the client, a collection is a client side cache of the
database. This is achieved thanks to the Minimongo library—an
in-memory, all JS, implementation of the MongoDB API.
内存部分似乎否定了离线工作。我错了吗?
编辑:"offline" 我的意思是尽可能多地具备这些品质:
- 即使没有互联网连接也能加载应用程序,显示用户数据
- 进行离线编辑,稍后同步它们,即使是离线的,例如小时
- 在离线加载应用程序时,还应显示尚未同步的编辑内容
EDIT2:我猜正确的术语应该是离线优先
此功能并非开箱即用。即使您对客户端进行了更改,它们也会反映在客户端中,但是一旦与服务器建立连接,服务器数据就会覆盖更改。
您将不得不手动推送数据。一种方法是使用浏览器的本地存储。您可以将数据保存在本地存储中,并在建立连接后将其推送到服务器以进行更改 'permanent'.
正如评论中指出的那样:Meteor 将尝试继续调用该方法,直到使用 Meteor.call
重新建立连接,但是一旦关闭选项卡,客户端中的数据就会丢失。因此,确保数据在选项卡关闭后仍然存在,将其存储在本地存储中。
您对 Minimongo 的 "in-memory" 部分的担忧是正确的。但是在离线设备上,这并没有看起来那么糟糕:只要应用程序保存在内存中(即如果通过浏览器打开则位于选项卡中,或者如果作为 Cordova 打包应用程序打开则不会强制关闭),您的 Minimongo 存在并保留您的数据。
但是,如果浏览器选项卡被关闭,或者 Cordova 应用程序从设备内存中取出(即用户通过任务切换器/应用程序管理器强制它关闭,或者 Android 内存不足并且查找未使用的应用程序以关闭。这也意味着只需返回主屏幕即可将您的应用程序保留在内存中),然后您的 Minimongo(及其数据)就会消失。
但是也有一些包可以处理该用例。参见 How can Meteor apps work offline?
Meteor-JS 是否支持离线storage/cache?
根据我正在阅读的内容:https://guide.meteor.com/collections.html :
Instead, on the client, a collection is a client side cache of the database. This is achieved thanks to the Minimongo library—an in-memory, all JS, implementation of the MongoDB API.
内存部分似乎否定了离线工作。我错了吗?
编辑:"offline" 我的意思是尽可能多地具备这些品质:
- 即使没有互联网连接也能加载应用程序,显示用户数据
- 进行离线编辑,稍后同步它们,即使是离线的,例如小时
- 在离线加载应用程序时,还应显示尚未同步的编辑内容
EDIT2:我猜正确的术语应该是离线优先
此功能并非开箱即用。即使您对客户端进行了更改,它们也会反映在客户端中,但是一旦与服务器建立连接,服务器数据就会覆盖更改。
您将不得不手动推送数据。一种方法是使用浏览器的本地存储。您可以将数据保存在本地存储中,并在建立连接后将其推送到服务器以进行更改 'permanent'.
正如评论中指出的那样:Meteor 将尝试继续调用该方法,直到使用 Meteor.call
重新建立连接,但是一旦关闭选项卡,客户端中的数据就会丢失。因此,确保数据在选项卡关闭后仍然存在,将其存储在本地存储中。
您对 Minimongo 的 "in-memory" 部分的担忧是正确的。但是在离线设备上,这并没有看起来那么糟糕:只要应用程序保存在内存中(即如果通过浏览器打开则位于选项卡中,或者如果作为 Cordova 打包应用程序打开则不会强制关闭),您的 Minimongo 存在并保留您的数据。
但是,如果浏览器选项卡被关闭,或者 Cordova 应用程序从设备内存中取出(即用户通过任务切换器/应用程序管理器强制它关闭,或者 Android 内存不足并且查找未使用的应用程序以关闭。这也意味着只需返回主屏幕即可将您的应用程序保留在内存中),然后您的 Minimongo(及其数据)就会消失。
但是也有一些包可以处理该用例。参见 How can Meteor apps work offline?