0

たとえば、SO は、最も人気のあるサイトと同様に、読み込み時に 50 を超える CSS エラーと警告をスローします。

正しいブラウザーを検出し、正しい CSS を動的にロードするだけでも簡単です。

これらのエラー/警告がほとんどのサイトで無視される理由を理解しようとしていますか?

役に立たない CSS の解析によるパフォーマンス ヒットはマイクロ秒単位である可能性がありますが、それは単なるコーディングのずさんさではありませんか?

4

1 に答える 1

5

2 つの理由:

  1. クライアント側で使用中のブラウザを検出することは不可能です。リクエストで送信されたヘッダーを盗聴することはできますがuser-agent(ヘッダーが存在する場合)、ブラウザーのメーカーとユーザー (ユーザーはヘッダー値を無効にしたり変更したりできるため) がそれを許可している場合にのみ信頼できます。

  2. ブラウザー固有の CSS、DOM、または Javascript の「機能」を使用すると、非標準の実装が促進されます。これが重要な理由については、http://www.webstandards.org/を参照してください。あなたが提案しているのは、Web 開発の「暗黒時代」への回帰です。

クライアントが使用しているブラウザーが非標準であり、ブラウザーがいかに安価であるかを考えると、無料であることに注意して、単に失敗するか、ページにバナーを表示する方がはるかに優れています。— より優れたブラウザーを使用すれば、ユーザーの Web エクスペリエンスが向上することを示唆しています。

Jon Postel (彼が安らかでありますように) は、ロバスト性のためには、アプリケーションは発行するものに対して厳密であり、受け入れるものに対して寛容でなければならないと言ったことがあります。初期の HTTP 実装と初期の HTML レンダリング エンジンは、受け入れられるものについて極度に寛容であり、最終的には、Web ブラウザーがあらゆる種類の非標準拡張機能を実装し、Web サーバーがあらゆる種類の壊れた、不正な形式のものを提供するという、Great Browser Wars につながりました。マークアップ。ブラウザー メーカーが非標準または不正な形式のデータを受け取ったときに単純にエラーをスローしていれば、はるかに良い結果が得られたと私は主張します。

OPの質問への回答:

これらのエラー/警告がほとんどのサイトで無視される理由を理解しようとしていますか?

簡単な答えは、標準がその特定の動作を義務付けているためです。http://www.w3.org/TR/CSS21/syndata.html#parsing-errorsにある CSS 標準の §4.2 を参照してください。

于 2013-03-19T19:37:43.277 に答える