これは特定のプログラミング問題についての質問ではなく、さまざまな概念を調べることです。司会者がこれがいいと感じない場合は、私の質問を削除してください。CSSスプライトより優れたソリューションはありますか?
テーブルtdに100個の画像を表示する必要があり、その画像は75x16個のPNGです。 HTTPリクエストの数を減らすために、大きなスプライトシートに166枚の画像(約100枚しか表示されていません)をグループ化し、一度に1枚の画像を出力するためにIMGタグを使用しました。これはコードです:
CSS:
.sprites {background-image:url('folder/spritesheet.png');background-color:transparent;background-repeat:no-repeat;display:inline;}
#png3 {height:16px;width:75px;background-position:0px 0;}
#png5 {height:16px;width:75px;background-position:-75px 0;}
PHP:
$classy = "png" . $db_field['imageid'];
echo "<td>" , "<img src='transparent.gif' class='sprites' id='$classy' alt='alt' align='absmiddle'/>" , "</td>";
$の上品なSQLクエリの出力に基づいて正しい画像を呼び出している変数です。 transparent.gifは1ピクセルの透明なgifです。そして、これは画像が正しく表内に表示され、その結果である:
ページの読み込み速度は多分50から60パーセント、大幅に増加しました。私の以前の質問の1つでは、これが良い習慣であるか否かに関していくつかの懸念が提起された。しかし、それは動作します。
私が見つけた唯一の解決策は、jar圧縮を使用することですが、そのコンセプトはFirefoxのみで動作します。 166枚の画像の
$logo = "jar:http://www.website.com/logos.jar!/" . $db_field['imageid'] . ".png";
echo "<tr>" , "<td>" , "<img src='$logo' alt='alt' width='75' height='16'/>";
すべてのjarファイルがあるとしてjarアーカイブに圧縮され、サーバーにアップロードされており、これはjarファイル圧縮(PHP、無CSS)を使用して、これらの同じ画像を表示するために使用されるコードであります非実体のアーカイブであり、呼び出されたイメージだけが抽出され、すべてではありません。このソリューションは高速で、多くの画像をより速く表示する方法は見たことがありません。概念はhereであり、リンクが必要です。 CSSスプライトに対するもう1つの利点は、各画像を個別にサイズに合わせて最適化することができる点です(画像に応じて1つは64色、もう1つは128,32 ...)、大きなスプライトシートは最適化できません多くの色が含まれています。
だから誰も、瓶と同等に速いソリューションを知っていますか?コンテンツを表示するためにCSSスプライトを使用するのが悪い習慣である場合 - 同じ結果をもたらす良い方法は何ですか?ここで重要なのは、できるだけ少ないHTTP要求でWebサイトの読み込み速度です。
さまざまな概念を探求していただきたい、まさに私が望んでいた答えのタイプをありがとう。 320 KBのスプライトシートで未使用の色を削除しました。ファイルサイズは、飛び越してもプログレッシブにロードされますが、現在は89 KBです。サブドメインを超えてコンテンツを配信するにはもう少し時間がかかるでしょうが、私もそうします。 –
イメージフォルダからサブドメインにイメージをコピーするCRONジョブを実行します。私の知る限り、サブドメインはメインドメインのサブフォルダだけなので、コピー上書き操作に似ています。 – Joseph
images.domain.com、css.domain.com、およびjs.domain.com上にファイルを広げると、通常の動作中にスピードが_increase_になるか、IEのボトルネックを防ぐだけで、減少するのを防ぐスピードで? –