2016-08-27 6 views
1

Meteor-JSはオフラインストレージ/キャッシュをサポートしていますか?私が読んでいるものから、Meteor-JSはオフラインストレージ/キャッシュをサポートしていますか?

https://guide.meteor.com/collections.html

は代わりに、クライアント上で、コレクションは データベースのクライアント側のキャッシュです。これはMinimongoライブラリの のメモリ内のすべてのJS、MongoDB APIの実装によって実現されます。

メモリ内の部分は、オフラインでの作業を無効にしているようです。私が間違っている?

EDIT:

  • ユーザーのデータを示すも、インターネットに接続せずにアプリが、場合でも、後でそれらを同期、オフライン編集を行い、負荷:「オフライン」私はそれらの資質のできるだけ多くを意味することにより、オフラインで時間
  • オフラインでアプリをロードするときに、未同期の編集も

EDIT2表示されるはずです:私は、適切な用語がオフライン-最初

答えて

1

あなたはMinimongoの「メモリ内」の部分について心配するのは正しいです。しかし、オフラインのデバイスでは、これは次のように悪いことではありません。アプリがメモリに保存されている限り(ブラウザで開いた場合はタブに座っているか、Cordovaのパッケージアプリとして開いた場合は強制的に閉じられません) Minimongoはあなたのデータを生きて保持します。

しかし、ブラウザのタブを閉じるか、Cordovaアプリをデバイスメモリから取り出した場合(つまり、ユーザーがタスクスイッチャー/アプリマネージャを強制的に閉じるか、Androidが不足していて未使用のアプリを探すこれはまた、ホーム画面に戻り、あなたのアプリを記憶しておくことを意味します)、Minimongo(とそのデータ)が消えてしまいます。

しかし、そのユースケースの世話をすることができるパッケージもあります。 How can Meteor apps work offline?

1

この機能は」doesnのだろうと思いますが箱から出ないクライアントに変更を加えても、クライアントに反映されますが、サーバーへの接続が確立されると、サーバーのデータは変更を無効にします。

手動でデータをプッシュする必要があります。これを行う1つの方法は、ブラウザのローカルストレージを使用することです。ローカルストレージにデータを保存し、接続が確立されるとそのデータをサーバーにプッシュして、変更を「永続的」にすることができます。

コメントで指摘されているように:流通は、接続が再確立するまでMeteor.callを使用している間、メソッドを呼び出すことを試みますが、一旦タブが閉じられると、クライアントのデータは失われます。したがって、データが確実にタブを閉じることができるようにして、ローカルストレージに格納します。

+0

「Meteor.call」によって変更が加えられた場合、実際にはクライアント(楽観的UI)に反映されますが、実際にはクライアントも[試し続ける](https://guide.meteor。アプリケーションコールが成功するか、アプリケーションが終了するまで(そして、Cordovaを搭載したデバイスのメモリから取り出されるまで)、メソッド呼び出しをサーバーに送信します。 – ghybs

+0

ユーザーがタブを閉じたときに試行が中止され、入力するデータが失われます。 – Ankit

+0

OPのポイントは、ブラウザ経由ではなく、ハイブリッドアプリのほうが多く聞こえます。ハイブリッドアプリは、ブラウザのタブよりもはるかに少ない頻度でデバイスメモリから消えます。 – ghybs

関連する問題