2010-11-30 3 views
11

HTMLが十分複雑な場合、HTMLコンテンツのレイアウトとレンダリングには時間がかかることがあります。レイアウトエンジン(特にIE)の助けとなるように、HTMLをコード化するためのベストプラクティスを見つけられず、ページの再描画が高速になりました。このような一連のベストプラクティスは存在しますか?IEでの高速レンダリングのためのHTMLコーディング方法

私の現在の具体的な問題は、ページの描画が遅すぎ、DOMの更新(ホバー効果)やアニメーションが非常に遅くなる(表要素内の)表データです。私はそれがJavaScriptのパフォーマンスではないと確信しています。私はdynaTrace AJAXを使ってページをチェックしました。マウスを要素の上に置くとCPUが忙しくなりますが、JSは実行されません。また、TR要素にクラスを追加/削除することで、ホバーを実現しています。私はFirefoxでもYSlowを試しましたが、特に問題はありません。ネットワーク関連でもありません。 (Firefoxは速くページをレイアウトしますが、JSエンジンが高速であるためではありません)

IEで図面とレイアウトをプロファイルするツールがありますので、問題の原因がわかりますか?そして、私はHTMLコードでそれらを避けることができるように、描画がとても遅くなる原因は何ですか?

+3

レンダリングをスピードアップする最も良い方法は、コードを少なく書くことです。 –

+0

あなたはCSS式を使用していませんか?それらはJS-in-CSSであり、使用可能なすべてのCPUパワーを消費する傾向があります。 – Piskvor

+0

いいえ、私のCSSは普通のCSSだと思います。 – Iravanchi

答えて

17

Internet Explorerは、大きなHTMLテーブルを表示すると速度が遅くなることが知られています。 Building High Performance HTML Pages、具体的に表についてのセクションに:テーブルの上に固定するテーブルレイアウトCSS属性を設定

  • は、MSDNのこの素晴らしい記事を参照してください。

  • 各列にcolオブジェクトを明示的に定義します。
  • 各列にWIDTH属性を設定します。 Table Rendering

はその後も、テーブルのレンダリングについてieblog上の素敵なブログの記事があります。

これは次のとおりです。テーブル内のコンテンツの複雑さを低くする、つまり固定幅を設定し、あまりにも多くの動的レンダリングアクションを実行しないようにしてください。 IEは最初にコンテンツを読み込んだ後、コンテンツの正しい幅を計算する必要があります。

+0

私はあなたがそれをバックアップするための参照を持っていることを除いて、私が言うつもりだった。 +1 – Quentin

+0

リンクをありがとう。私は今それらを試しています。私が今まで発見したことは、「幅= 100%」を取り除くと、すべてがずっと速くなりますが、テーブルの固定レイアウトが実際には減速したことです。レイアウトのボトルネックを突き止めるのに役立つツールがあるはずです(または開発されたと思います)。何でも知ってますか? – Iravanchi

+0

あなたはすでにdynaTrace AJAX版を述べています.IEのフードの下で実際に何が起こっているかを深く示すツールは知らないので、あなたは本当に狂ったものが原因であるかあなたの遅れ。あなたは 'width = 100%'の観測値を守り、そのバリエーションを試してみるべきでしょう。おそらくあなたのページに他のマークアップを付けずにテーブルを試してみてください。たぶん問題はどこかにある。 –

関連する問題