Показать сообщение отдельно
Старый 17.05.2003, 15:23
Useless вне форума Посмотреть профиль Отправить личное сообщение для Useless Посетить домашнюю страницу Useless Найти все сообщения от Useless
  № 6  
Useless

Регистрация: Mar 2001
Адрес: всё, отжился...
Сообщений: 1,024
Отправить сообщение для Useless с помощью ICQ
Итак, вот наш пациент:
Код:
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

MM_preloadImages('a.gif','b.jpg','c.png');
Что мы видим?

Чуть ли не половина объёма кода - меры предосторожности против того, чтоб какой-нибудь тупой юзер не вызвал эту функцию несколько раз. Точнее, чтоб он мог это сделать, ничего не испортив. И чтоб ещё якорей в список мог напихать безбоязненно.

Поскольку такого идиотизма нормальный человек не совершит даже по обкурке, этот кусок запросто можно выкинуть. Ещё отформатировать код нормально, и получится:
Код:
function PG_preloadImages( names ) {
  if ( document.images ) {
    PG_images = [];
    for ( var i = 0; i < names.length; i++ ) {
      PG_images[i] = new Image();
      PG_images[i].src = names[i];
    }
  }
}

PG_preloadImages( [ 'a.gif', 'b.jpg', 'c.png' ] );
Можно ещё оптимизнуть тут в паре мест, но общий принцип ясен.

Аргументы в защиту ДВшного кода?
__________________
Work not wolf - in forest no run