Apache Wicket Web フレームワークでは、すべてのコンポーネントがデフォルトで getOuputMarkupId() から false を返します。
その理由が気になります。背後にあるデザインの決定。
私は ajax コンポーネントを使用しており、ページ上の他のコンポーネントを更新する必要があります。そのためには、ajax ページの更新に関係するすべてのコンポーネントで setOutputMarkupId(true) を使用する必要があります。私は ajax を頻繁に使用するため、頻繁に使用する必要があります。そして、それはあまり便利ではありません。「最良のコードは、まったくコードがないことです」のほかに。
私はこのようにそれを扱うことができます:
class MyApp extends Application {
@Override
public init() {
Application.addComponentInstantiationListener(
new IComponentInstantiationListener() {
public void onInstantiation(Component component) {
component.setOutputMarkupId(true);
component.setOutputMarkupPlaceholderTag(true);
}
}
);
しかし、トレードオフはありますか?私の頭に浮かぶ唯一のトレードオフは次のとおりです。
- レンダリングされたページ (html) が大きい
- レンダリングのオーバーヘッドがいくらかあります (つまり、id 属性が html に書き出される場合)
しかし、それらはフットプリントが小さいだけです。