最適化の「フレッシュマン」-データ使用時のブラウザーの動作:CSS Sprites URI


最近、インターネットでは、データの使用に関するより多くの出版物uri css spritesが登場し始めました。 Googleで世界的に有名な「オプティマイザー」であるSteve Soudersブログから2つのリンクを提供します。

CSSEmbed-自動的にデータ:URI-ize
最適化:リアルタイムスプリッティングなど

私たちの国内のヒーローである「webオプティマイザー」 sunnybearは、データの使用に関する質問を以前に提起しました。cssの uriで、多くの研究を共同で実施しました。 そのとき、 以前の記事で書いた多くの興味深い点と機能が登場しました 。 最近の実験により、データuri cssスプライトを使用したブラウザーの動作に関する多くの未知のポイントが明らかになりました。


問題は、データの不適切な使用 :uri cssスプライト技術では、サイトの読み込み(表示)の速度を遅くすることができることです。

例を考えてみましょう


通常、データ:uri cssスプライトを使用する場合、背景画像はメインスタイルから分離され、base64に変換されてから、個別に接続されているスタイルシートに配置されます。 すべての(またはほとんどすべての)背景画像がこのファイル内に配置されるという事実により、そのサイズは非常に大きくなります。

データの接続:uriからHEAD


両方のスタイルファイル(メインおよびbase64画像)をHEADに接続すると、これらのスタイルが読み込まれるまでサイトに「フリーズ」が表示されます。データの重み:uri cssファイルが大きいため、今回は非常に重要です。

HEADでの接続例

より明確にするために、示された例では、データの発行のために10秒の遅延が行われました:uri css。

ブラウザの結果

データ:uri cssのダウンロードが完了するまでページを表示しないでください:
-Chrome 3.0.195.33
-FF 3.5.5
-Safari 4.0.3
-IE 8.0.6001

データを待たずにすぐにページを描画します:uri cssが読み込みを完了します:
-Opera 9.62

データを接続します:FOOTERのuri(</ body>付近)


メインスタイルシートをHEADに接続し、FOOTERのbase64画像を含むスタイルシートが「フリーズ」しない場合、目的の最適化効果が得られます。 base64イメージ。

FOOTERでの接続例

ブラウザの結果

データ:uri cssのダウンロードが完了するまでページを表示しません:
-IE 8.0.6001

データを待たずにすぐにページを描画します:uri cssが読み込みを完了します:
-Chrome 3.0.195.33
-FF 3.5.5
-Safari 4.0.3
-Opera 9.62

結論


データを使用する場合:uri css spritesテクニックを強くお勧めします
1)基本スタイルおよびスタイルのファイルをbase64イメージと共有します(データ:uri css)
2)データを接続する:文書の最後にあるuri css、終了</ body>タグに可能な限り近い
3)js-cssブリッジ(不凍液)を使用してデータを接続する:IEのuri css

PS:IEでの冒険が安定していることを嬉しく思います。第8バージョンでも、仕事をより面白くする楽しい驚きに出会うことがよくあります。

広告
フライアエロフロート飛行機

Source: https://habr.com/ru/post/J76881/


All Articles