2017-07-12 4 views
0

私はプレミックスを使用してポリマー上に簡単なアプリケーションを構築しようとしていますが、私が直面している問題は次のとおりです: ページがリロードされると、変数は初期状態に戻ります。他のページ(.htmlファイル)。私は変数が宣言され、すべてのファイルへのルートを持っている1つのメインの.htmlファイルを持っています。Polymerのリロード時にjs変数がリセットされないようにするには?

質問:

  1. これを防止するための方法は何ですか?

  2. ユーザーのログインとログアウトが必要な、より複雑で複雑な別のアプリケーションを構築する予定があるので、これをどうすればよいでしょうか?

答えて

2

クライアントに保存する必要がある情報は、localStorageに記載してください。私は個人的にはreduxを使用して、自分の状態をlocalStorageに保存することを好みます。これにより、ユーザーは停止した場所で正確に作業を続けることができます。 認証は、Auth0のようなリフレッシュトークンメカニズムを実装するために必要なものです。

+0

申し訳ありませんが、私は上記のリンクを辿り、非常に便利です。私はそれを実装しようとします。 ありがとうございました! – Harman

+0

@ pascal-lの良い情報また、Predix Webapp Starterをあなたの出発点としてチェックしてください:https://github.com/predixdev/predix-webapp-starter – gstroup

+0

はい私はそれを使用しましたが、要件のためにpythonフォルダ構造に従っています@gstroup – Harman

-1

まず、ページをリロードする必要があるのはなぜですか、またはユーザーがページをリロードする理由があるかどうかを確認する必要があるのはなぜですか?ポリマーでは、ページをリロードしないで、コンテンツが現在のページ内で切り替わる単一のビューアプリケーションです。あなたが選択肢を求めたので、ルータを使ってwindow.historyにプッシュし、そこに更新された変数を格納することもできます。

window.history.pushState({'navigate': true, 'url': url, 'extra': extra}, 'FSport', url); 

window.history.replaceState({'navigate': true, 'url': url, 'extra': extra}, 'FSport', url); 

我々は、ポリマーを使用し始めたときにその要素が存在していなかったので、私たち自身のルータを書かなければならなかったので、私は、現在のルータがポリマーにどのように動作するかわかりません。


localStorageに保存する場合は、localforageを使用してオブジェクトのindexDbを取得していることを覚えておいてください。 localStorageよりも遅いにもかかわらず、約束事(非同期データフェッチ)を処理する利点があります。

+0

書き込み窓の中で決して良いアイデアではありません。また、何らかの状態を持続させることは、還元関数が行うことであり、州をlocalStorageまたはIndexDBに永続させる追加的なアドオンが存在します。ステートレスなWebComponentを持っていても、1つのページアプリケーションを持つだけでDev Lifeをもっとうまく作ることはできません。 –

+0

なぜウィンドウに書き込むのが悪い考えなのかあなたは決して言いませんでした。 これはおしゃれなコンテストであることを知らなかったし、ハーマンは何かをする "方法"について尋ねた。私はちょうど代替案を出しました。正しい答えはなく、好きなものだけです。あなたの好みの答えではないので、何かをdownvoteしたいのなら、それはあなた次第です。 –

+1

Hey Rickard、 私は締め切りに縛られているので、私はポリマーに慣れていなくて、ペースで物事を考え出しています。 アプリケーションがSPAになることができないことは、バックエンドとミドルウェアの必要条件です。また、ポリマーとプレディクスが必要です。 私はどこにでもアプリケーションをリロードしていません。これは、ユーザーがブラウザでリロードを押した場合です。 私はあなたの答えをありがとうと私はリロード時にセッションを復元するのに役立つ変数だけでなく、私のURLを保存するための良いアイデアのように思われるので、これを調べます。 – Harman

関連する問題