JSFでHtmlDataTableを使用して動的にテーブルを生成しようとしています。それぞれ25を超える行と列の数を指定している場合、一部のセルはIEでのみ入力されておらず、非常に遅くなっています。ただし、Firebugを使用してコードをデバッグすると、値を確認できます。FirefoxとChromeでは正常に動作しています。
これはどのように発生し、どうすれば解決できますか?
JSFでHtmlDataTableを使用して動的にテーブルを生成しようとしています。それぞれ25を超える行と列の数を指定している場合、一部のセルはIEでのみ入力されておらず、非常に遅くなっています。ただし、Firebugを使用してコードをデバッグすると、値を確認できます。FirefoxとChromeでは正常に動作しています。
これはどのように発生し、どうすれば解決できますか?
InternetExplorerのテーブルレンダラーは非常に貧弱であることが知られています。特に、列とテーブルのネストが熱心になりすぎる場合。
遅延読み込みとページ付けを導入してテーブルを小さくし、一度に10〜100行だけが表示されるようにする以外に解決策はありません。必要に応じて検索フィルターを追加します。追加の利点は、それがはるかにユーザーフレンドリーでもあるということです。たとえば、Googleは、フィルタリングとページ付けを行わずに、モンスターテーブルに無数のWebサイトリンクをすべて表示するわけではありません。
PrimeFacesを使用する場合は、<p:dataTable>と一緒LazyDataModelに使用してください。
コメントに従って更新します。サーバー側のコードを変更できない場合、他に選択肢はありません。最善の策は、エンドユーザーに代わりに実際のブラウザを使用する必要があることを通知することです。
例えば
<script>
var ie = /*@cc_on!@*/false;
if (ie) {
window.location = 'some_page_which_recommends_different_browser.xhtml';
}
</script>