2010-12-21 16 views
0

私は大きなテーブル(数千行)を持っていて、テーブル全体をできるだけ速くレンダリングしたいとしましょう。終了タグでテーブルをレンダリングすることは可能です

テーブル全体がダウンロードされるまで何らかの形でテーブルのレンダリングを延期することはできますか?それ以外の場合は、各行の後の幅の計算に時間がかかるようです。

Doctypeが宣言されていないIEを使用すると、ブラウザはテーブルの終了タグを取得するまで待機しているようです。しかし、私がdoctypeを宣言すると、テーブルは一度にレンダリングを開始するので、新しい行のたびにテーブル幅を計算する必要があります。 table-layout:fixedを使用したくないので、コンテンツを改行しないようにしたいからです。

IE(8)では重要な時差があるように見えますか?

(ページ設定はオプションではありません)

ありがとうございました!

答えて

2

それがロードされるまで、あなたがテーブルを隠すことができます:

<table id="PopTable" style="display:none"> 
    ... 
</table> 
<script type="text/javascript"> 
document.getElementById('PopTable').style.display = ''; 
</script> 
+0

これは物事が良くなりますが、それはまだはるかに遅いDOCTYPEとせずによります。どんな考え? – picknick

0

これは醜い解決策になりますが、適切にレンダリングを遅らせるようなdocument.write()-callなどのHTMLを適切にラップすることができます。

このような何か:

<script>document.write('<table>...</table>')</script> 
0

あなたは、次の操作を行うことができます データがダウンロードされている間に、テーブルの上にtable-layout:fixedを使用して、 。

テーブルの終了タグの後に、cssを削除する小さなスクリプトを追加します。

例:

<table style='table-layout:fixed' id='data_table'> 
<!-- All your data --> 
</table> 
<script type='text/javascript'> 
    document.getElementById('data_table').style.tableLayout = 'auto'; 
</script> 
関連する問題