2016-12-23 5 views
1

私は以前に尋ねられていないと思う面白い質問があります。まず最初に、私はfirebaseを初めて使っています。私はドキュメントを読んできましたが、まっすぐ答えを見つけることはできません。データリロードを停止する方法Firebaseをリフレッシュする

私の状況は次のとおりです。 私はリアルタイムデータベースからユーザーデータを取り込み、Webページ内の多くのフィールドに入力します。

問題である: たびにスクリプトがデータを再ロードするまで、ページをリロード(でもナビゲーションにhome.htmlpage2.html、たとえば、間で変更)の領域は空白のままにしています。

私の質問: 問題は再発しないように、データを一度しかロードできない方法はありますか?

私が試みがあります:

  1. はfirebaseに組み込まれonce()機能を利用。ページが読み込まれるたびにスクリプトが呼び出されるため、動作しませんでした。

他の可能性のあるソリューション: 私はおそらく、データが以前に送信されたかどうかを示す変数を格納してもらえますか?どうすればいい?

アイデア?皆さんありがとう!

答えて

2

これを達成するには複数の方法があります。 1ページのアプリケーションを作成して、各ページがリロードされないようにする(角度、反応などを調べる)か、ブラウザーのlocalStorageを使用して結果を保存することができます。

2

session storageまたはlocal storageを使用するとよいでしょう。

これは、特定の変数をブラウザが閉じられるまでクリアされないローカルキャッシュに保存することを可能にするものです。ローカルストレージは同じものに使用されますが、唯一の違いは、ブラウザが閉じられたときにクリアされないことです。

私はこのような状況では、何か変更を加えただけで永久にユーザーデータを保存したくないと思います。あなたは

if(sessionStorage.getItem("updated")){ 
    // get the data from the session storage 
} else { 
    // get from firebase 
    sessionStorage.setItem("updated",true); 
} 

たび、ページのロードのような何かを行うことができ、このタスクを達成するために

これが役に立ちます。

関連する問題