Цитата:
Хотя, всё это слишком мудрено логичнее, не умножая сущностей, отпарсить все данные сразу поставив пользователю красивую заставку на время парсинга))) |
Важнее сейчас следующее: подскажите как заменить конструкцию с firstChild.data ведь документ с пустыми тегами типа <Col></Col> не проходит обработку, или как-нибудь создавать пустую строку чтобы firstChild.data находил объект? Замена <Col></Col> на <Col>-</Col> не выход из положения!
|
А вот еще что можно оптимизировать. Создание новых нодов и потом appendChild - достаточно тяжелые операции. Гораздо легче создать строку, и потом вставить ее через innerHTML.
// Вместо
function createList(data) {
var list = document.createElement("ul");
for (var i = 0; i < data.length; i++) {
var newItem = document.createElement("li");
var newText = document.createTextNode(data[i]);
newItem.appendChild(newText);
list.appendChild(newItem);
}
return list;
}
// Делаем
function createList(data) {
var list = document.createElement("ul"),
cont = '',
i, l;
for (i = 0, l = data.length; i < l; i++) {
cont += '<li>' + data[i] + '</li>';
}
list.innerHTML = cont;
return list;
}
|
Вам уже советовали использовать JSON вместо XML, я присоединяюсь к этому совету. Приблезительно как будет выглядеть файл:
[ [ "text1",
"text2",
"img/img1.png",
"img/img2.png"],
[ "text3",
"text4",
"img/img3.png",
"img/img4.png"],
[ "text5",
"text6",
"img/img5.png",
"img/img6.png"] ]
Замечу что этот массив полностью аналогичен тому массиву который Вы пытаетесь получить с XML. Есть еще идея, если Вы планируете использовать данный файл только в браузерах то Вы можете формировать изначально правильный JavaScript документ и подсоединять его к документу через теги: <script type="text/javascript" src="data-table.js"></script> Вот как примерно будет выглядеть документ:
var dataTable = [ [ 'text1',
'text2',
'img/img1.png',
'img/img2.png'],
[ 'text3',
'text4',
'img/img3.png',
'img/img4.png'],
[ 'text5',
'text6',
'img/img5.png',
'img/img6.png'] ];
tableLoad();
Замечу что этот метод кросбраузерный и он минимально нагружает процессор. Данный скрипт нужно подключать в самом конце документа и функция tableLoad(); должна уже быть определена где-то выше. Срабатывание этой функции означает что база полностью загружена и можно с ней работать. |
Спасибо, Magneto!
Главный вопрос: будет ли работать Json в CHM файле, т. е. на движке IE6? Я ведь пишу функции для CHM-справочника. |
| Часовой пояс GMT +3, время: 09:47. |