Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 10.08.2016, 12:50
Интересующийся
Отправить личное сообщение для renatdmit Посмотреть профиль Найти все сообщения от renatdmit
 
Регистрация: 09.08.2016
Сообщений: 20

Сообщение от warren buffet Посмотреть сообщение
Вот такими да? - row.insertCell().innerHTML = i;

У тебя же нет никакого хтмля в i, там просто число, то есть тут вообще-то .textContent, но, у тебя же нет текстовой ноды, поэтому ты рисуешь .innerHTML, а это значит проворачиваешь для каждой ячейки могучий парсер браузера.
Я его одинаково проворачиваю в обоих случаях, тормозит он почему-то только на InsertRow
Ответить с цитированием
  #32 (permalink)  
Старый 10.08.2016, 14:22
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Кстати, пустую таблицу можно запузырить в одной строкой в браузере, который понимает String.repeat(count);

document.getElementById('div').innerHTML='<table><tbody>'+('<tr><td>&nbsp;'+('</td><td>&nbsp;'.repeat(8))+'</td></tr>').repeat(10)+'</tbody></table>';
Ответить с цитированием
  #33 (permalink)  
Старый 10.08.2016, 14:28
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Однако как правило данные уже есть и значит они лежат в массиве, в двумерном само собой. Чтобы не рисовать двумерный массив из циферок, я просто взял лорем ипсум.

<style>
table {
	border-collapse:collapse;
}
table tfoot,
table caption {
	padding:10px;
	background:#000;
	color:#fff;
}
table th,
table td {
	padding:5px;
	border:1px solid #ddd;
}
</style>
</head>
<body>


<div id="tb"></div>

<script>

var cnt=8, a='Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc'.split(' '), 
cells= new Array(cnt), 
rows= new Array(cnt), 
cp=a.splice(0,cnt),
hd=a.splice(0,cnt),
ft=a.splice(0,cnt),
w=0;

for(var j=0;j<rows.length;j++) {
	for(var i=0;i<cells.length;i++)
		cells[i]=a[w++];
	rows[j]='<tr><td>'+cells.join('</td><td>')+'</td></tr>';
}

document.getElementById('tb').innerHTML='<table><caption>'+cp.join(' ')+'</caption><thead><tr><th>'+hd.join('</th><th>')+'</th></tr></thead><tfoot><tr><td colspan="'+cnt+'">'+ft.join(' ')+'</td></tr></tfoot><tbody>'+rows.join('')+'</tbody></table>';

</script>


Отсюда вопрос. Если надо создать именно таблицу, то зачем ковырять по элементам, если можно сделать чертеж в тексте, а потом его реализовать запихнув в DOM.

Вставки строк, удаление, перемещение и прочая хрень связанная с по-элементным оперированием - это из другой жоперы. И вот там с аппендами нахрен не надо. А тут не надо ни того ни другого.
Ответить с цитированием
  #34 (permalink)  
Старый 10.08.2016, 15:17
Интересующийся
Отправить личное сообщение для renatdmit Посмотреть профиль Найти все сообщения от renatdmit
 
Регистрация: 09.08.2016
Сообщений: 20

warren buffet,

С точки зрения читабельности кода такой подход никуда не годится.
С точки зрения производительности - интересно будет попробовать на больших объемах.

Эта тема мне интересна, потому что первый сайт, который я решил сделать в своей блестящей карьере вэб-программиста, как раз - о чудо - будет считывать данные из базы и выводить - как ни смешно - в таблицу.
Ответить с цитированием
  #35 (permalink)  
Старый 10.08.2016, 15:23
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Пиши читательно, только кто будет читать твои коды кроме тебя? Или ты веришь что Артемий Лебедев примчится проверить как там на твоих страницах коды читательные или нет. Вообще все нормальные люди как минимум минимизируют скрипты, а как максимум обсфусцируют, так что ничего не прочитаешь даже через дебаггер.

Выводить в таблицу можно на сервере. Ты думаешь 100Кб сильно отличаются от мегабайта при передаче данных в 21-м веке?

ЗЫ 2олл. Это мне один умнег из нлпистов-оптимизаторов как-то написал насчет одного веб-сайта, и там кроме прочего бреда, были два скрина с исходниками сайта и комментарий, дескать надо оптимизировать скрипты и стили. Ну, а что там можно увидеть, если все стили - в одну строку на полстраницы и все скрипты далее в одну строку на вторую половину страницы? То есть три экрана прокрутки из которых почти все три - сплошной текст без единого переноса. Читательно? А вот теперь пойти умнег и посмотри исходник google.com и подивись как в современном мире принято постить веб-страницы.

Последний раз редактировалось warren buffet, 10.08.2016 в 15:27.
Ответить с цитированием
  #36 (permalink)  
Старый 10.08.2016, 15:28
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Кстати, как я понял этот спец собирается заделать data-grid. Так вот я бы посоветовал скачать готовый. Их много разных и почти все бесплатное, ибо таблицы уже давно не нужны никому, поскольку екзель есть на гугле.
Ответить с цитированием
  #37 (permalink)  
Старый 10.08.2016, 16:25
Интересующийся
Отправить личное сообщение для renatdmit Посмотреть профиль Найти все сообщения от renatdmit
 
Регистрация: 09.08.2016
Сообщений: 20

warren buffet,

Сообщение от warren buffet
Пиши читательно, только кто будет читать твои коды кроме тебя?
Обычно при выборе тех или иных методов люди выбирают либо чтобы было читабельно, либо чтобы быстро работало, если не удается совместить и первое и второе. Если читабельность кода вам по барабану, производительность вам по барабану. Тогда из каких соображений вы советуете тот или иной метод?
Ответить с цитированием
  #38 (permalink)  
Старый 10.08.2016, 20:30
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

renatdmit, Какая тебе читабельность и производительность нужна еще в то время, как Виндоуз (!) уже давным давно работает на телефонах? Ты вообще знаешь что такое Виндоуз, даже мобильный? Так что запросто можешь идти по пути Микрософт и никто тебе и слова не скажет.

И вообще, к какой читательности ты прицепился в трех строках кода? Что таблица собирается в одной строке? Ну сядь и наделай там переносов через + чтобы понятнее было. Это же жаба, она не понимает переносов в скалярах, а мне переносить было лень.
Ответить с цитированием
  #39 (permalink)  
Старый 10.08.2016, 20:34
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от renatdmit
либо чтобы было читабельно, либо чтобы быстро работало
Ты явно глубокий самоучка программист от сохи. Читабельность кода к производительности программы относится как иголка к стогу сена. Ну хер с ними с интепретаторами, но если у тебя компилятор и он компилирует с документации, с ТЗ, ты вообще как проведешь корреляцию между читабельностью документа и производительностью бинарного кода?

Короче, или вернись в свою деревню, или осваивай цивилизованные методы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание таблицы SQL Ambient Общие вопросы Javascript 7 19.07.2016 22:25
Google создание таблицы и запись данных aleks_lv Общие вопросы Javascript 2 07.12.2015 15:05
Создание таблицы с чекбоксом используя массив jeka Javascript под браузер 3 09.04.2014 17:23
Чтение файла + создание динамической таблицы Lexx32 (X)HTML/CSS 1 11.09.2013 13:25
Создание элементов под выбранной строкой таблицы Kitana Элементы интерфейса 4 05.09.2011 14:14