это не вопрос конкретной проблемы программирования, а изучение различных концепций.Если модераторы не считают это нормальным, удалите мой вопрос.
Мне нужно отобразить 100 изображений PNG в таблице td, и изображения имеют размер PNG 75x16.Чтобы уменьшить количество HTTP-запросов, я сгруппировал все 166 изображений (только около 100 показано одновременно) в большую таблицу спрайтов и использовал тег 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>";
$ classy - это переменная, которая вызывает правильное изображение на основе вывода SQL-запроса,transparent.gif - прозрачный GIF размером 1 пиксель.И это результат, изображения отображаются правильно внутри таблицы:
Скорость загрузки страницы значительно увеличилась, возможно, на 50-60%.В одном из моих предыдущих вопросов были высказаны некоторые опасения по поводу того, является ли это хорошей практикой или нет.Но это работает.
Единственное другое решение, которое я нашел, - это использование сжатия JAR, но эта концепция работает только для Firefox.Это код, который используется для отображения этих же изображений с использованием сжатия jar (PHP, без CSS):
$logo = "jar:http://www.website.com/logos.jar!/" . $db_field['imageid'] . ".png";
echo "<tr>" , "<td>" , "<img src='$logo' alt='alt' width='75' height='16'/>";
Все 166 изображений сжимаются в архиве jar и загружаются на сервер, а такжеjar - это не сплошной архив, извлекается только вызванное изображение, но не все.Это решение быстро освещается, и я никогда не видел более быстрого способа отображения такого количества изображений.Концепция здесь и заслуживает ссылки.Другое преимущество по сравнению со спрайтами CSS состоит в том, что с помощью jar каждое изображение может быть индивидуально оптимизировано по размеру (например, одно оптимизировано до 64 цветов, другое - до 128, 32 ... в зависимости от изображения), а большая таблица спрайтов не может быть оптимизирована, посколькусодержит много цветов.
Итак, кто-нибудь знает решение, которое будет таким же быстрым, как банка?Если использование спрайтов CSS для отображения контента - это плохая практика, - что такое хорошая практика, которая дает тот же результат?Ключевым моментом здесь является скорость загрузки сайта при минимальном количестве HTTP-запросов.