2011-01-22 1 views
0

マルチユーザーフレックスアプリケーションをリセットするベストプラクティスは何ですか?私が意味するリセットで :すべてのFlexアプリケーションをリセットする - すべてのフォームフィールドとその他のユーザーデータ(URLRequest/Javascriptなし)

  • リセットすべてのフォームフィールドやその他のデータ
  • 彼のセッション中にアプリケーション全体で残したユーザが特定のデータ

を含むすべてのデータグリッドやその他のコンポーネントをリセット...ユーザーはアプリケーションからログアウトします。

私は、navigateToURLを使用して、またはJavaScriptを使用してURLを再ロードする方法を知っています。しかし、私はこれらのアプローチが気に入らない。主にアプリケーション全体を再度ロードする必要があるため、時間がかかり、データをリセットするだけではややこしいことです。

URLリロードを必要としない優れた代替アプローチはありますか?

答えて

2

アプリをデフォルト状態に設定する方法を書いてください。それが何であれ。これをログアウト手順の一部として実行します。

あなたがそれを行うための自動方法を探しているなら、私はそれを考えることができません。そのような「自動」アルゴリズムを書いている人は、あなたのデフォルトがどのようになるかを知っていますか?

1

まず、@ www.Flextras.comは正しいです...「デフォルト」状態は、アプリケーション開発者によって定義されます。アプリを再読み込みして最初からやり直したくない場合は、すべてのフィールドをクリアすることが何を意味するのかを知る必要があります。彼は絶対に正しいですし、彼は+1を取得します。

言われているように、私はブレーンストーミングのためのいくつかのアイデアを追加できます。再帰的にgetElementnumElementsのような関数を使ってビジュアルツリーをナビゲートするルーチンを書くことができます。すべてのTextInputsとTextAreasがクリアされると仮定して、ツリー内でそれらを見つけたらクリアするようなことができます。ツリー内の名前とデフォルト値でフィールドをリストする設定ファイルを作成することもできます。次に、ツリーを走査し、名前で要素を見つけて、設定で定義されたデフォルトに設定することができます。

しかし、デフォルトの状態がどのように見え、何を消去するかを知っておく必要があります。 Flexの観点からは、プロパティはプロパティです。 TextInput.textはBorderContainer.backgroundAlphaよりも特別なものではありません。そのようなことがすべて "デフォルト"に設定されていた場合、あなたのアプリはそれ自身に崩れ落ちるでしょう。それで、あなたのアプリで「デフォルト」や「リセット」が何を意味するのかを理解してください。その定義をどうにかしてカプセル化して、コード全体に盛り込まず、選択したクリアアルゴリズムを適用します。

+0

あなたの考えをありがとう。現在、私は自分のアプリケーション内のすべての要素をループし、フォーム要素をいつどのように整理し、整形するかについて考えています。あるいは、すべての「クリーニング可能な」コンポーネントを、そのコンポーネントをクリーンアップする方法を定義するInterfaceのサブクラスにすることができます。しかし、簡単な方法があるかどうかを依頼しても、私のアプリが最初からあるのと同じ状態にしたい(これはかなり明確です)。実際に親アプリケーションを再インスタンス化するようなトリックはありません。最初と同じ状態になるでしょうか? – ifischer

+1

もちろん、いつでもアプリを再インスタンス化することができます。あなたのメインフォームを何もしないで、別のクラスとしてあなたのアプリの勇気を含めるようにしてください。グループなどでホストしてください。リセットするときに新しいものを作成します。古いもの(Group.removeElement)を削除し、新しいもの(Group.addElement)を追加します。新しいアプリがクリーンな状態で提供されている限り、あなたはすべて設定する必要があります。また、古いアプリがガベージコレクションされていることを確認してください。彼らが使用されていないときには、あなたはそれらを守りたくありません。 –

+0

ええと、このように、フォーム要素をリセットするのを忘れることはできません。それを数日で試してみてください。しかし、非常に有望なアプローチのように聞こえます! – ifischer

関連する問題