Точкой входа в приложение на стороне клиента является фу init(). Она отвечает за заполнение панели Feeds (Рассылки) и грузку первой из них. Четкое и ясное выделение различных ра списка имеет большое значение для панели Feeds, и для этой це пользуются элементы форматирования неупорядоченного списка.
var divFeedList = document.getElementById("divFeedList"); var oFragment = document.createDocumentFragment();
for (var i = 0; i < oFeedsFile.sections.length; i++) { var oSection = oFeedsFile.sections[i];
Ссылка на элемент, куда будет выводиться список рассылок, извлека¬ется с помощью метода getElementByldO и сохраняется в переменной •fivFeedList. В процессе создания списка рассылок страница будет по¬стоянно обновляться, что может снизить производительность интер¬фейса (и раздражать пользователя). Чтобы исправить этот недостаток, список рассылок сначала вставляется во фрагмент документа. Только когда добавление новых рассылок будет завершено, весь список цели¬ком вставляется в документ (со всеми дочерними узлами во фрагменте).
Мы уже говорили, что разделы списка должны быть четко и ясно отде¬лены друг от друга, и наличие графического значка рядом с названием раздела очень поможет в этом:
var olcon = document.createElement("img"); olcon.src = "img/category_icon.gif"; olcon.border = "0"; olcon.alt = "";
var oSpan = document.createElement("span");
oSpan.appendChild(document.с reateTextNode(section.name));
oSpan.className = "navheading";
Метод DOM createElement() позволяет создавать элементы-изображе¬ния и названия разделов, заключенные в элемент . Созданный заголовок раздела добавляется во фрагмент документа. Кроме того, ао фрагмент добавляется неупорядоченный список, содержащий эле¬менты раздела:
oFragment.appendChild(oIcon);
oFragment.appendChild(oSpan);
var oUl = document.createElement("UL");
oUl.className = "navlist";
Отдельные названия рассылок отображаются в виде гиперссылок, что требует создания элементов <а /> и <П />:
for (var j = 0; j < section.links.length; j++) { var oLink = oSection.links[j]; var oLi = document.createElement("li");
var oA = document.сreateElement("a");
oA.appendChild(document.createTextNode(oLink.name));
oA.href = "#";
oA.onclick = loadFeed;
oA.className = "navlinks";
оА.Ш1е="Загрузить " + oLink.name;
oA.setAttribute("frFileName",link.fileName);
oLi.appendChild(oA); oUl.appendChild(oLi);
)
Элементы <а /> имеют атрибут с именем f rFileName, который содер имя файла, связанного с рассылкой. Когда будут созданы все разде ссылки, неупорядоченный список добавляется во фрагмент докумев
oFragment.appendChild(oUl);
После того как фрагмент документа будет вставлен в divFeedList, полняется загрузка первой из рассылок.
divFeedList.appendChild(oFragment); loadFeed(feedsFile.sections[0].links[0].fileName);
В этот момент приложение практически полностью загружено, сок рассылок готов, но незаполненной остается панель заголовков] востей. Далее управление передается функции loadFeed().