Цитата:
Хотя, всё это слишком мудрено логичнее, не умножая сущностей, отпарсить все данные сразу поставив пользователю красивую заставку на время парсинга))) |
Важнее сейчас следующее: подскажите как заменить конструкцию с 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, время: 04:03. |