В-общем, суть задачи, которую никак не могу решить более-менее правильно... И так, и так - не нравится скорость прорисовки - и все тут...
var myTable = [];//Массив строк, длина массива может быть и 1000
var myTableRow = [];//Каждый эл-нт массива myTable имеет еще массив, т.н. столбец. Столбцов может быть до 20ти штук
//Каждый столбец имеет свой тип. Например, если там число, то привести его в дату по шаблону "d.m.Y в H:i".
Если нарисовать структуру, то она будет такой:
myTable = {
[Type:'int' or 'text', Value: '0-9' or 'azAZ'],
...
[Type:'int' or 'text', Value: '0-9' or 'azAZ']
};
В итоге, получается такой цикл для рисования этой таблицы
var rc = myTable.length;
var cc = myTable[0].length;//Каждая строка имеет одинаковое кол-во столбцов
var ri;
var ci;
var row;
var Result = [];
var c;
Result.push('<table><tbody>');
for (ri = 0; ri < rc; ri++) {
row = [];
for (ci = 0; ci < cc; ci++) {
c = myTable[ri].Col[ci];
switch(c.Type) {
case 'int': {
c = new Date(parseInt(c.Value));
c = c.getDate();
} break;
case 'text': {
c = '"' + c + '"';
} break;
}
row.push(c);
}
Result.push('<tr><td>' + row.join('</td><td>') + '</td></tr>');
}
Result.push('</tbody></table>');
$(myTableArea).html(Result.join(''));
Проблема в том, что скорость такой "сборки" таблицы оставляет желать лучшего...
Например, у меня скорость такого алгоритма на 15 строк занимает где-то 300 мс.
Если строк не 15, а 100, то алгоритм занимает больше секунды.
А если 1000 строк нарисовать... То это вообще можно спать идти
Кто что подскажет?
PS: Разработка не кросс-браузерная, исключительно под Firefox.