2

私はPolymerアプリを持っています。ユーザーがログアウトしたときに、アプリ全体を元の状態にリセットしたい。(現時点では、ユーザーがログアウト後に再度ログインすると、アプリはユーザーをログアウト時のアプリの状態とページに戻します。)

これを達成するための便利な (つまり、グローバルな) アプリ設計またはコード パターンはありますか? 便利な/グローバルなものがない場合は、これをローカルで (つまり、要素ごとに) 達成する方法を示してください。

編集

いくつかの調査 (および Polymer slack グループでの会話) の結果、これまでのところ 2 つの主な提案があるようです。他の人は大歓迎です。

ブラウザのリロード

JS ステートメントを使用して、ブラウザー ページを強制的に更新できます。

location = location;

と 534 の他の方法

この解決策は私にとって満足のいくものではありません。これは本質的にハッキングであり、パフォーマンスの問題や、画面の更新や再描画を待つなどの望ましくない副作用を引き起こします。

ステートレス アーキテクチャ

誰かがステートレス アプリ アーキテクチャの使用を提案しています。しかし、Polymer アプリのコーディング コンテキストでそれを実装する方法がわかりません。繰り返しますが、提案やアイデアは大歓迎です。

4

2 に答える 2

0

私が思いついた最善の解決策は、location.reload()メソッドを使用してユーザーのログアウト時にブラウザーを更新することです。

秘訣は、無限ループ状態を防ぐアプリ固有のロジックを追加する必要があることです。

ログアウト時にリロード:
user: {
  ...
  observer: '_userChanged',
},
...
_userChanged: function() {
  var bool = this.foo(); // Add logic here to prevent endless loop condition
  if( !this.user && bool ) {
    location.reload();
  }
},
于 2016-12-19T01:41:23.410 に答える