問題タブ [state-saving]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6908 参照

jsf - JSF 2.0 の部分的な状態の保存が機能していないようです

トラフィックの多い Web サイトで JSF を使用する可能性を評価しています。JSF 2.0 では、コンポーネント ツリーはセッションに保存されず、コンポーネント ツリーが変更されるとデルタのみが保存されると言われました。

ここに私が見ているページがあります:

このページを表示するたびに、1K 近くがセッションに割り当てられます。<form>タグを削除すると、セッションには何も保存されません。

コンポーネントツリーがセッションに保存されている理由は何ですか? これは、ポストバック要求で計算されると思います。

0 投票する
1 に答える
53459 参照

java - JSF が UI コンポーネントの状態をサーバーに保存するのはなぜですか?

  1. JSFはどの時点までUIコンポーネントの状態をサーバー側に保存し、UIコンポーネントの状態情報がサーバーメモリから削除されるのはいつですか? アプリケーションにログインしたユーザーがページをナビゲートすると、コンポーネントの状態がサーバーに蓄積され続けますか?

  2. サーバー上で UI コンポーネントの状態を保持する利点がわかりません!? 検証/変換されたデータをマネージド Bean に直接渡すだけでは十分ではありませんか? 私はそれを避けることができますか、または避けるべきですか?

  3. 何千もの同時ユーザー セッションがある場合、サーバー側で大量のメモリ消費しませんか? ユーザーが特定のトピックに関するブログを投稿できるアプリケーションがあります。このブログのサイズはかなり大きいです。ポストバックやブログ閲覧のリクエストがあった場合、この大きなページのデータはコンポーネントの状態の一部として保存されますか? これはあまりにも多くのメモリを消費します。これは気になりませんか?


更新 1:

現在、JSF の使用中に状態を保存する必要はありません。高パフォーマンスのステートレス JSF 実装が利用可能です。関連する詳細と議論については、このブログこの質問を参照してください。また、 JSF にステートレス モードを提供するオプションである JSF 仕様に含める未解決の問題があります。(PSが便利な機能である場合は、これこれの問題に投票することを検討してください。)


更新 2 (2013 年 2 月 24 日):

Mojarra 2.1.19ステートレス モードでリリースされたという素晴らしいニュースです。

ここを参照してください:

http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255

http://java.net/jira/browse/JAVASERVERFACES-2731

http://balusc.blogspot.de/2013/02/stateless-jsf.html

0 投票する
2 に答える
9940 参照

jsf - JSFがコンポーネントツリーの状態を保存するのはなぜですか?

管理対象Beanの状態とコンポーネントツリーの状態には違いがあるようです。@RequestScoped@SessionScopedなどのアノテーションを使用してマネージドBeanの状態を制御できますが、コンポーネントツリーの状態を保存するかどうかを選択することはできないようです(ただし、サーバーとクライアントのどちらに保存するかは選択できます)。 )。

コンポーネントツリーの状態は、リクエストの処理を支援する一時的なデータ構造として、単一のリクエストの期間中にのみ必要となるようです。リクエストごとに最初から再構築する必要があります。JSF 2.0では、フォームデータのみが保存されるため、部分的な状態保存によって状況が改善されますが、前のリクエストのフォームデータでさえも役立つ理由がわかりません。

アプリケーションがリクエストスコープで管理されたBeanのみを使用する場合、リクエスト間でコンポーネントツリーの状態を保存することは特に意味がありません。アプリケーションにセッションスコープのマネージドBeanがある場合でも、マネージドBeanは状態を保持し、コンポーネントツリーはリクエスト間で状態を保持する必要はないと思います。

0 投票する
1 に答える
2766 参照

java - UIComponentBase を拡張するときに状態を保存する方法

非常に単純なページングを実装するためにデータ テーブルをラップする複合コンポーネントを作成しています。ajax リクエスト間で状態 (現在のページ番号) を保存する必要があります。

FacesComponent でフィールドを作成しようとしましたが、JSF ライフサイクル中にそれらが消去されることがわかりました。

どこでもこれを行うための簡潔なガイドが見つからないようです! 複合コンポーネントを作成するときに、リクエスト間の状態をどのように保存しますか?

0 投票する
1 に答える
539 参照

jsf - JSF 2 - 動的に追加されたコンポーネントの ID がポストバックで保持されない

コンポーネント内にファセットがあり、その中にコンポーネントを動的に追加します

しかし、ポストバックで、このリストを繰り返し処理すると、コンポーネントは存在するが、それらの ID は以前に指定したものとは異なることに気付きました。(より具体的には、これらの ID は「j_id9、j_id10」などの形式です)

StateManagementStrategyImpl のコードを少しデバッグしたところ、ビューの保存中に意図的にコンポーネント ID を保存していないことがわかりました。

私の質問は、JSF がコンポーネント ID を保存しないのはなぜですか?

0 投票する
1 に答える
242 参照

java - クライアント側の状態保存、クライアントに送信された状態データを確認する方法はありますか?

サーバー側とクライアント側の保存の中からJSFアプリのより良い状態保存方法を決定するために、状態がクライアントに保存されるときに保存された状態データを確認したいと思います。

クライアント側の節約の利点を維持するために、リクエスト間で転送されるデータの量を把握する必要があります。これを減らすと、(常に応答性があり、ビューの有効期限が切れた後もアプリが停止しないなど)!この保存された状態をFirefoxのFirebugプラグインで確認できますか?どのように ?

0 投票する
1 に答える
2091 参照

jsf - java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です:com.sun.faces.renderkit.ServerSideStateHelper.getStateで-1

このコードを使用せずに使用する<p:tab>と、期待どおりに機能します。

しかし、使用を開始する<p:tab>と、以下の例外がスローされます。

これはどのように発生し、どうすれば解決できますか?

0 投票する
1 に答える
2086 参照

jsf-2 - JSF composite component - weird behavior when trying to save state

I'm using Glassfish 3.2.2 and JSF 2.1.11

I'm trying to create a composite component that will take as parameters a string and a max number of characters and then will show only the max amount of characters, but it will have a "more" link next to it, that when clicked will expand the text to the full length and will then have a "less" link next to it to take it back to the max number of characters.

I'm seeing some weird behavior, so I'm wondering if I'm doing something wrong.

Here is my composite component definition:

#xA;

And here is the Java component:

#xA;

Unfortunately expanded is always false every time the toggleExpanded function is called.

However if I change the composite component to the following then it works.

#xA;

If I place a breakpoint in the toggleExpanded function, it only gets called on the "more" link and not the "less" link. So the question is why doesn't it get called when I click on the "less" link? Shouldn't this code be equivalent to the code above?

Is there a better way to save state in a component?

0 投票する
1 に答える
438 参照

iphone - State saving, navigation controller stack saving and gesture recognizer on the navigation bar

I'm loading my view controllers like this:

On my stack's root view controller I am adding a gesture recognizer in the navbar.

However if I pushed some view controller on top it won't load this gesture, because the root view controller's viewDidLoad doesn't get called, and if I access the viewControllers property of UINavigationController it returns nil.

Any ideas how to proceed with this gesture? Thanks!