GXT を使用してかなり複雑なシステムに取り組んでいます。FF ではすべてがうまく機能しますが、IE (特に IE6) では話が異なります (ブラウザーがページをレンダリングするまでに 10 秒以上かかります)。
主な理由の 1 つは、IE6 での惨事である DOM 操作であることを理解しています ( http://www.quirksmode.org/dom/innerhtml.htmlを参照)。
これは、フロントエンド Javascript フレームワーク (すなわち GWT) の一般的な問題であると考えることができますが、同じ機能を実行する単純なコード (以下を参照) は、別の方法で証明します。実際、IE6 では、getSomeGWT() に 400 ミリ秒、getSomeGXT() に 4 秒かかります。これは、ユーザー エクスペリエンスに大きな違いをもたらす x10 ファクターです !!!
private HorizontalPanel getSomeGWT() {
HorizontalPanel pointsLogoPanel = new HorizontalPanel();
for (int i=0; i<350; i++) {
HorizontalPanel innerContainer = new HorizontalPanel();
innerContainer.add(new Label("some GWT text"));
pointsLogoPanel.add(innerContainer);
}
return pointsLogoPanel;
}
private LayoutContainer getSomeGXT() {
LayoutContainer pointsLogoPanel = new LayoutContainer();
pointsLogoPanel.setLayoutOnChange(true);
for (int i=0; i<350; i++) {
LayoutContainer innerContainer = new LayoutContainer();
innerContainer.add(new Text("just some text"));
pointsLogoPanel.add(innerContainer);
}
return pointsLogoPanel;
}
したがって、問題を解決/軽減するには、次のことを行う必要があります- DOM 操作の数を減らします。またはb。それらを innerHTML に置き換えます。
私の知る限り、(a) は単に GXT を使用した場合の副作用であり、(b) GXT でまだサポートされていない UiBinder でのみ可能です。
何か案は?
前もって感謝します!