Написал жаба-скриптик, который замедляет загрузку картинок на странице. Дело в том, что если у вас на одной странице много картинок, то ничто кроме здравого смысла не мешает браузеру грузить их все одновременно, сколько бы их ни было. Если при этом отрисовка картинок это ресурсожоркий процесс, например вы показываете не голых блондинок, а что-то полезное, скажем какие-нибудь счётчики бабла трафа, то серверу может резко поплохеть. У меня например есть внутренняя страничка, на которую выведены статусы всех серверов в виде картинок, каждая группа сайтов это 1 или 2 картинки на одной странице их очень много, соответственно когда я делаю обновление этой страницы, сервера начинают одновременно выдавать много результатов, что не идёт им на пользу, а IE на пару секунд подвешивает интернет-канал.

Чтобы загрузка картинок происходила более плавно, придумал такой скрипт:

<script type=”text/javascript”>

var elements1;
var elements2;
var nn;
var ll;
var delayms = 250;

if (document.getElementsByTagName)
{
 elements1 = document.body.getElementsByTagName(“IMG”);
}
else if (document.body.all)
{
 elements1 = document.body.all.tags(“IMG”);
} else
{
 elements1 = Array();
}
elements2 = Array();
for (var i = 0; i < elements1.length; i++)
{
 elements2[i] = elements1[i].src;
 elements1[i].src = ”;
 elements1[i].onload = ShowImgs;
}

ll = elements1.length;
nn = 0;
setInterval(‘ShowImgs()’, delayms);

function ShowImgs()
{
 if (nn >= ll)
 {
  window.status = ”;
  clearInterval();
  return;
 }
 sss = elements2[nn];
 window.status = ‘Images [' + nn + '/' + ll + '] ‘ + sss;
 elements1[nn].src = sss;
 nn = nn + 1;
}

</script>

Скрипт нужно поместить в конец страницы с картинками. Работает он очень просто – при загрузке он запоминает адреса всех картинок в массиве, а в те места где картинки должны быть, подставляет пустышки. Потом запускается таймер, который начинает загружать картинки одну за другой. Одновременно с этим, в загруженных картинках срабатывает событие, которое тоже загружает оставшиеся картинки, если они загрузились быстрее таймера. В IE загрузка работает плавно, как в ФФ, где это кажется реализовано в браузере.

Похожие посты