3

改札のセッションサイズの調整について読んでいますが、モデルを永久に存続させないためにLoadableDetachableModelを使用することをお勧めします。プロパティモデル(PropertyおよびPropertyCompoundModel)は非常に高価ですか?

LDMまたはプロパティモデルをいつ使用するのですか?

4

2 に答える 2

4

LoadableDetachableModelデータベースから取得したデータを使用している場合は、リロードに必要な ID のみがシリアル化されるように、ほとんどの場合 a を使用するのが最善です。

PropertyModelモデルをCompoundPropertyModelラップしてフォームで使いやすくすることができますが、セッションへのシリアル化のコストを削減する主な方法は、LoadableDetachableModel.

于 2012-05-17T03:39:23.933 に答える
4

それは常にあなたが達成しようとしていることに依存します。そのため、費用がいくらなのかを理解することが重要です。

リクエスト間で、Wicket は通常、ページ オブジェクトとそれが参照するすべてのものをシリアル化します。これには、ページ上のすべてのコンポーネントと、その結果としてのすべてのモデルが含まれます。これが起こらないのは、ページがステートレスの場合だけです。

ほとんどのモデル実装には、基になるモデル オブジェクトへの非一時的な参照が含まれているため、モデルに大きなオブジェクトへの参照が含まれていて、ページがステートレスでない場合、シリアル化時間のオーバーヘッドが発生し、さらに重要なことには、.セッション。

LoadableDetachableModel動作が異なり、基になるモデル オブジェクトへの一時的な参照のみが含まれているため、シリアル化されている場合、モデル オブジェクトはそうではありません。これの欠点は、リクエストごとにモデル オブジェクトを再構築する必要があることです。

だからあなたの質問は本当にこれです: 従来のモデルを使用するコストは のコストを上回りLoadableDetachableModelますか? すでに述べたように、モデル オブジェクトがデータベースから取得されたものである場合、ほとんどの場合、LDM を使用する価値があります。

覚えておかなければならないもう 1 つのこと (そして LDM を支持する強力な議論) は、モデルを連鎖できるということです。CompoundPropertyModelそのため、LDM によってサポートされている を引き続き使用できます。

于 2012-05-17T10:13:20.917 に答える