7

TABLEプレーンHTMLを使用してテーブルをレンダリングするのにかかる時間と、実際のTR、、TDなどのタグの使用を回避するハッキングされたCSSピューリタンメソッドとの比較について、現在のブラウザーでいくつかの統計を探しています。

他のブラウザの統計にも興味がありますが、特にFirefox 3で、より高速なものだけを探しています。もちろん、TABLEタグはテーブル用に設計されていますそれは問題ではありません。


いいえ、これを行う方法はありません。

通常の方法では、例外を処理できない限り、例外をキャッチしません。

つまり、通常は例外をキャッチして、トップレベルの例外ハンドラーに記録するだけです。その後、スタックトレースを取得しますが、もちろん、スタック内のすべてのメソッド呼び出しのすべてのパラメーターの詳細を取得することはありません。

明らかに、デバッグするときは、できるだけ詳細な情報が必要です。これを実現する他の方法は次のとおりです。

  • Debug.Assertステートメントを自由に使用して、作成している仮定をテストします。

  • 選択的にアクティブ化できるロギングを使用してアプリケーションをインストルメント化します。Log4Netを使用していますが、System.Diagnostics.Traceクラスを使用するなど、他の方法もあります。

いずれにせよ、例外をキャッチしてログに記録するだけの場合(n層アプリケーションの層境界でこれを実行し、例外がサーバーにログに記録されるようにします)、常に例外を再スローする必要があります。

try
{
    ...
}
catch(Exception ex)
{
    log(ex);
    throw;
}
4

10 に答える 10

18

表形式のデータがある場合は、表を使用してください。テーブルを何にも使用してはならないという考えは、意図されたセマンティック目的にのみhtmlタグを使用する必要があるという正しい概念の誤った拡張でした。つまり、レイアウトにはCSSを使用しますが、表形式のデータにはテーブルを使用します。テーブルを絶対に使用しないという意味ではありません。

于 2008-09-25T20:31:00.023 に答える
8

一般に、表形式のデータには <table> を使用します。ただし、テーブルが非常に長く (たとえば、100 行を超える)、列数が少ない (~3) 場合、div を使用して行をエミュレートすると、マークアップのフットプリントがはるかに小さくなります。これは、DOM 検索 JavaScript (多くの JS ライブラリで提供されている) を使用している場合に特に重要です。これは、DOM ツリーのサイズを縮小するのに役立つからです。

これは経験によるものです。私はそのようなテーブルを持っていて、最適化を探していました.divベースの表示に移行すると、生成されるHTMLが3分の1になり、DOMトラバーサルのパフォーマンスが大幅に向上しました。

于 2008-09-25T20:40:13.683 に答える
5

一部のブラウザーは、テーブル全体が転送されて表示されるまで待機して、コンテンツ サイズの列幅が調整されていることを確認するため、すべてのブラウザーの平均を探している場合は、div を使用するとレンダリングが高速になる可能性があります。

そうは言っても、テーブルが必要な場合は、テーブルを使用してください。

于 2008-09-25T20:41:00.577 に答える
2

レイアウトにCSSを使用し、ベストプラクティスに従い、CSSを別のファイルに保持する場合、CSSは通常、キャッシュされる前に1回だけダウンロードする必要があるため、キャッシュのメリットがあります。

レイアウトにテーブルを使用する場合、レイアウトテーブルはすべてのページのHTMLとともに送信されるため、帯域幅とダウンロード時間が長くなります。

table-layout:fixed;を設定してみることができますが、テーブルのレンダリング速度を向上させるため。それが役立つかどうかを確認します。

于 2008-09-26T09:51:04.063 に答える
2

この質問は、HTML のレイアウトにテーブルを使用しないのはなぜですか?と似ているよう です。そのため、いくつかの応答も確認することをお勧めします。

一般に、テーブル全体が計算されるまで、ブラウザはテーブルをレンダリングしません。つまり、ユーザーの観点からすると、大きなテーブルは、テーブルの代わりに CSS スタイルを使用する同じコンテンツよりも遅くなります。ある時点で、テーブルを使用してステータス情報のグリッドを表示する Web アプリケーションを使用していましたが、表示が非常に集中的で非常に低速でした。CSS を使用して表示された同じ情報はより速く、さらに重要なことに、テーブル全体を待つのではなく、ロードされると行ごとに表示を開始したため、エンド ユーザーとしてより速く感じました. CSS を使用して調査し、テスト用のサンプル データセットを使用してデータを表示することをお勧めします。これは、テーブルが実際に私たちが持っていた特定のユースケースではるかに遅いことを確認するために行ったことです.

于 2008-09-25T20:53:43.933 に答える
1

ブラウザが異なればjavascript/cssのパフォーマンスも大きく異なるため、ここで一般化するのは非常に困難です。たとえば、IE7のエンジンは驚くほど遅く、Chromeのエンジンは驚くほど高速です。Firefoxはその中間にあり、2または3を使用しているかどうかに依存します。

于 2008-09-25T20:30:05.503 に答える
1

ここでは、レンダリング速度を最も重要な側面とは見なしません。HTMLテーブルは表形式のデータ用に作成されています。それを多くのDIVかそこらに入れることは、私の理解では完全に間違っているでしょう。

于 2008-09-25T20:31:13.080 に答える
1

上記のほとんどの回答と同様に、表形式のデータを表示している場合はテーブルを使用し、レイアウトを制御する場合は DIV を使用します (CSS3 を使用)。信じられていることとは反対に、 colgroup などのいくつかのプロパティを設定し、レイアウトを固定したままにしておくと、テーブルのレンダリングは DIV よりも遅くはありません。次のリンクで方法の詳細を確認してください。

sites.google.com/site/spyderhoodcommunity/xhtml/makingtablesrenderfasterwhenlistingtabulardata

于 2009-05-19T10:12:17.423 に答える
0

表形式のデータの場合は、テーブルを使用します。<thead>テーブルには、タグ、凡例、タイトル、キャプションなど、あらゆる種類の優れた機能が<tfoot>備わっています。テーブルをテーブルにするために必要なものはすべて揃っています。

また、CSS が機能しない/読み込まれていない/重要でない場合でも、テーブルは正常に表示され、機能します。

于 2008-09-25T20:33:19.800 に答える
-1

個人的に私が読んだことから、あなたが実際に表形式のデータを提示しているのであれば、表がそのタスクにより適していると私は個人的にそれがかなり真実であることに気づきました。

@skaffmanが述べているように、「より速い」ものの生の数については、ブラウザによって異なります...しかし、「正しい」ためには、表形式のデータにテーブルを使用するのが理にかなっています。

于 2008-09-25T20:32:18.430 に答える