1

私はデータを生成してプレーンテキストとしてダンプするのに約40秒かかる大きな「グリッド」のデータを持っています。私がHTMLテーブルの書式設定(固定td幅で)でテキストをラップすると、IE7に完全に表示するのに200秒以上かかり、Safariには1分以内に表示されます。小さな "グリッド"はいずれのブラウザでも5秒以内に表示されるため、データボリューム以外のものとは関係ないと思います。 IE7の表示速度を上げるためにサーバー側で何かできることはありますか?壁に頭を打つのを止めるようにユーザーに指示することは選択肢ではありません。IE7がSafariに比べて遅いのはなぜですか?

+0

異なるエンジン、異なるアルゴリズム。 NN4のテーブルレイアウトアルゴリズムには、テーブルの複雑さに応じて**指数**の時間があったことに注意してください。レイアウトを単純化することができれば、利益を得ることができます。 – liori

答えて

1

これらはすべてすばらしい提案ですが、私は喫煙銃を見つけました! IEがページをレンダリングすると、Mcshield.exeというプロセスがマシンを引き継ぎます。サーバーは同じボックス上にあるため、ページの生成とレンダリングが遅くなります。今問題は「McAfeeがSafariではなくIEをクラッシュさせるのはなぜですか?」私はそれを研究します。もう一度ありがとうStack Overflow!

+0

McAfeeがこれを行うことを確認できます。 McAfeeオンアクセススキャンを無効にすると、IE7がかなりスピードアップします。私の場合は、2000年のローテーブルを持つページをロードするのに30秒かかり、約5秒かかります。ありがとう、ロス! – Dubs

+0

私はさらにそれを絞り込んだ。McAfeeは、その中にonClick属性を持つハイパーリンクをチェックします。私のテーブルのすべての行にはonClickがあるので、McAfeeは2000年以上のすべてのリンクをチェックしていました。すべてのリンクからonClick属性を削除すると、読み込み時間が大幅に短縮されました。お役に立てれば! – Dubs

10

table-layoutのcss属性をテーブルに固定します。 IEはではありません。は、追加された行/列ごとにテーブルサイズを再計算する必要があり、飛躍的にスピードアップします。

ところで、w3schools linkにはこれに関する良い情報があります。

テーブルレイアウトは、auto、fixed、およびinheritの3つの値のいずれかをとります。

がデフォルトです。ブラウザは、サイズを計算してレンダリングを開始する前に、テーブル全体をロードする必要があります。これは、ブラウザーのレンダリングエンジンに応じて、低速から非常に遅いまでの範囲です。

固定です。最初の行は列の幅を定義します。このため、ブラウザはコンテンツをダウンロードしながらレンダリングできます。したがって、スピードが上がる。副次的なメモとして、一番上の行以外のすべての幅は無視されるため、残りの列に対して幅データを送信する必要はありません。つまり、ページサイズを少し小さくすることができます。

は、を継承します。基本的に、それは親からの価値を得る。

+0

彼の質問では、彼は彼が幅を固定していたと言いました。それはすべてのテーブルタグに "固定"を置くのに役立ちますか?表? td? tr? tbody?宣伝? – Nosredna

+1

テーブルレイアウトはテーブルレベルでのみ適用されます。

レイアウトの管理者がすべてが実際に固定幅であると判断するには、ブラウザはテーブル全体をロードする必要があります。そのCSSタグが適用されている場合を除きます。 – NotMe

+1

これはいいようですが、私はすでに

をそこに持っていました。私は​​の幅を集計し、それもテーブルスタイルに入れましたが、IEのベンチマークはまだ醜いです。 –

1

IE7は古いブラウザであり、Safariほど高速ではありません。IE8、Firefox、Chromeにアップグレードすると、パフォーマンスが向上することがあります。

+4

年齢はそれとはまったく関係ありません。トライデントは、テーブルレイアウトでそれほど素晴らしいことはありませんでした。デザインのトレードオフの可能性が最も高いのは... IEチームは、ばかげて大きなテーブルを最適化する必要性を感じなかった。 –

+3

私は彼らが巨大なテーブルを最適化していない時に最適化していたものを知りたいです。 – Nosredna

+1

@Nosredna haha​​、今日の笑いのおかげで:) – alex

1

おそらくグリッドを改ページして、おそらく読みやすく、両方のブラウザで高速になるでしょうか?

1

なぜIE7はSafariに比べて遅いのですか?

彼らは別のHTMLエンジンを持っているので、その仕事異なり、異なるアルゴリズム、異なるなどの

は、私はIE7の表示を高速化するために、サーバー側で何かできることはありますか?

おそらくAjaxを試してみることができます。そうすることで、スピードがはるかに向上します。

+4

「おそらく、あなたはAjaxを使ってみることができます。本当に?私は、ページが素早く読み込まれるとスピードが速くなるとは思っていませんが、実際に気にしているテーブルをレンダリングするのに(XHR経由で)約200秒を費やしています。 –

+1

@Matthew:あなたが真剣になっている場合は、次のようにすることができます。a)サーバーのデータのサブセットをロードします。これは200秒ではなく10秒かかるものです。クライアントのレコードをajaxで取り出し、次のチャンクあなたがそれをすべて得るまで繰り返す – OscarRyz

3

「1分足らずのサファリ」も耐え難いようです。遅いことがあればどこでも、私は進捗バーとデータに関するいくつかの統計を載せています。

オザス・レイエスの示唆しているように、Kazarのページ区切りのアイデアは、行く方法、またはプログレッシブ・ローディングである可能性があります。

このデータの長さはどのくらいの行数と列数になりますか?

+0

61行、5列、64k。テーブルの生成にはおそらく30秒かかることに注意してください(それは別の問題です)。 できるだけ早く応答するようにするために、パディングされたヘッダーをダンプしますが、最終結果がIEでもっと長くかかることになります。 1400行、5列、1.4 mbのダウンロード。 –

+0

ちょっとしたアイデア:テーブルを使わないようにしましたか?スピードが何であるかを見るだけですか?固定幅のテキストとしてすべての情報を

に入れるとどうなりますか? – Nosredna

1

とにかくこのデータをプログラムで生成しているので、より前の>タグを使用すると、テキストがモノスペースフォントで表示されることがあります。この方法で、セル幅と高さを自分ですぐに計算できます。それは最も美しく見えませんが、レイアウト時間を避けることができます。

あなたが手でこれを行うにはしたくない、とあなたがあなたのテーブルにリンクを持っていない場合は、プレーンテキストにHTMLをレンダリングし<前>タグにその出力を配置するthe elinks web browserを使用することができます。二ノートで

elinks -dump ./localfile.html

お持ちでない場合、あなたは、サーバー側でデータをgzippingされるので、その転送時間が短縮されることを保証すべきです。 IIS, instructions to enable gzipping can be found hereの場合。 Apache, instructions to enable mod_gzip can be found hereの場合。 Apacheの場合、Apache's own documentation on mod_deflateを試してください。

関連する問題