2010-12-02 36 views
0

私はJava/BlazeDSバックエンドを備えた100%FlexベースのエンタープライズWebアプリケーションを持っています。よりうまくいくユーザーエクスペリエンスを作り出すために、私はログインした後すぐにクライアントに多くのデータをロードしてセッション全体を保持したいと思っています。Flexアプリケーションは、データが古くなったときにどのように知ることができますか?

これには、ユーザーの設定、アプリケーションのスキン、アプリケーションのレイアウトなどの項目が含まれます。サーバー上で更新されることはめったにありません。

私の質問は、更新された場合、クライアントサイドのデータをリフレッシュするための良いアプローチは何ですか...そしてリフレッシュするタイミングを知っていますか?私はAdobe LCDSに興味がないと言わなければならない!

答えて

2

クライアントにキャッシュされたデータを更新するには、そのデータがサーバー上で変更された場合、サーバープッシュをサポートするサーバー側のソフトウェアを使用する必要があり、更新が必要であることをクライアントに通知します。

LiveCycleはこれをサポートする1​​つのサーバー側ソフトウェアです。私はあなたがあなたの質問でそれを呼び出すので、あなたがすでにそれを知っていたと思う。

GraniteDSは別のもので、FOSSなので好みよりもいいかもしれません。

私はWebORBもプッシュ機能をサポートしていると思われますが、私にそれを抱かないでください。

サーバー側で何もしたくない場合は、いくつかのタイマーでクライアントからサーバーへの呼び出しを設定することができます。

+0

BlazeDSはサーバープッシュをサポートしていますか? – HDave

+0

@HDaveいいえ、そうではありません。そのために、AdobeはLiveCycleの使用を希望しています。私はAdobeの姿勢を尊重することができます。「サーバープッシュ」はエンタープライズクラスのアプリケーションでのみ必要であり、エンタープライズは何らかの種類のプレミアムサポート契約を購入することで利益を得ます。 – JeffryHouser

+0

BlazeDSにサーバープッシュがないことを確認したこの記事の素晴らしい記事が見つかりました。しかし、長いポーリングでそれをシミュレートできますが、サーバマシン上のスレッドを食いつぶします。それをチェックしてください:http://www.aaronwest.net/blog/index.cfm/2008/5/21/The-Truth-About-BlazeDS-and-Push-Messaging – HDave

-1

まあまあ、Flexは単方向であり、HTTPRequestを使ってFlexにデータを取得することができます - 少なくともApacheを使用していないFlexクライアントにデータを送ることはできません。最善の方法は、好みのデータのタイムスタンプをFlexアプリケーションにローカルに保存し、httprequestを使用してタイムスタンプが定期的に(つまり5分ごとに)バックエンドアプリのデータのタイムスタンプとローカルに一致するかどうかを調べることです。

+0

-1は不正確な回答です。 「ただのApache」でサーバーサイドのプッシュを行うことはできません。しかし、Flexは本質的に1つの方法であることは決してありません。Flex(Flash Player)はソケットをサポートしています。このソケットを使用すると、サーバーとの接続を開いたままにして、サーバーがクライアントに情報を送信するために使用できます。しかし、(LiveCycleのような)サーバー側のプログラムが必要です。 – JeffryHouser

+0

はい、LiveCycleを使用しないと効果的に一方向です。そしてOPは特に、彼はLiveCycleに全く関心がないと言いました。だから、サーバーのプッシュとしてフラッシュプレーヤーの利点なしに、何が最善の解決策だろうか? – Jack

+0

-1質問を読んでいないため... – Jack

関連する問題