Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 08.09.2011, 00:51
Аспирант
Отправить личное сообщение для Hag1989 Посмотреть профиль Найти все сообщения от Hag1989
 
Регистрация: 25.10.2009
Сообщений: 50

Сообщение от Snipe Посмотреть сообщение
Эм, так а список ссылок как будут строится?
-из только что подгруженной части массива. К примеру первая группа ссылок у меня только в первом элементе Row, его и отпарсить по событию onLoad, далее при onClick на его ссылке (тот же текст к которому будут дописываться тег <a ></a> и массив значений атрибутов href=""), зная, что элементы первого Row связаны только со вторым Row, парсить второй, затем также ещё несколько Row.
Хотя, всё это слишком мудрено логичнее, не умножая сущностей, отпарсить все данные сразу поставив пользователю красивую заставку на время парсинга)))
Ответить с цитированием
  #22 (permalink)  
Старый 08.09.2011, 00:56
Аспирант
Отправить личное сообщение для Hag1989 Посмотреть профиль Найти все сообщения от Hag1989
 
Регистрация: 25.10.2009
Сообщений: 50

Важнее сейчас следующее: подскажите как заменить конструкцию с firstChild.data ведь документ с пустыми тегами типа <Col></Col> не проходит обработку, или как-нибудь создавать пустую строку чтобы firstChild.data находил объект? Замена <Col></Col> на <Col>-</Col> не выход из положения!
Ответить с цитированием
  #23 (permalink)  
Старый 08.09.2011, 01:22
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

А вот еще что можно оптимизировать. Создание новых нодов и потом 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;
}
Ответить с цитированием
  #24 (permalink)  
Старый 08.09.2011, 01:42
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Вам уже советовали использовать 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, 08.09.2011 в 02:04.
Ответить с цитированием
  #25 (permalink)  
Старый 08.09.2011, 17:56
Аспирант
Отправить личное сообщение для Hag1989 Посмотреть профиль Найти все сообщения от Hag1989
 
Регистрация: 25.10.2009
Сообщений: 50

Спасибо, Magneto!
Главный вопрос: будет ли работать Json в CHM файле, т. е. на движке IE6? Я ведь пишу функции для CHM-справочника.

Последний раз редактировалось Hag1989, 08.09.2011 в 18:40.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача xml файла в js не через HTTP. prowoke Общие вопросы Javascript 9 30.06.2011 02:36
Сохранение файла XML zeraid Общие вопросы Javascript 2 12.05.2011 02:08
не работает парсинг XML в IE Enxiro jQuery 6 25.08.2010 12:26
Размер загруженного XML файла Mefisto AJAX и COMET 3 15.03.2010 00:05
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17