Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Я не улавливаю разницы... (https://javascript.ru/forum/dom-window/24947-ya-ne-ulavlivayu-raznicy.html)

d-kaktus 19.01.2012 22:43

Я не улавливаю разницы...
 
Систематически натыкаюсь на код страниц интернета довольно солидных компаний, а так же компаний - вэб-разработчиков, которые наряду с использованием js на страницах сайта прибегают к громоздким спискам и т.п. описанным тэгами, без js.

Приведу пример:
<ul>
<li class="style">Элемент списка 1</li>
<li class="style">Второй элемент</li>
<li class="style">Элемент номер три</li>
<li class="style">Ещё какая-то ерунда</li>
<li class="style">Бред сивой кобылы</li>
<li class="style">И всякая хрень</li>
</ul>

Это ерунда, если список такой, но зачастую элементов во много больше.
Почему не использовать такой подход:
<script>
var ul=["Элемент списка 1","Второй элемент","Элемент номер три","Ещё какая-то ерунда","Бред сивой кобылы","И всякая хрень"];
someDiv.innerHTML="<ul><li class='style'>"+ul.join("</li><li class='style'>")+"</li></ul>";
</script>

Я вижу только плюсы в js варианте - при длинном списке объём данных получится значительно меньше, упрощение работы с тэгами и их атрибутами, динамическое изменение списка и т.п.
Полагаю, продвинутые конторы по вэб разработкам не будут заниматься ерундой и прибегнут к оптимальному решению.
Почему же первый пример - без js используют в большинстве? Чем он превосходит js?
В чём заключается разница?

devote 19.01.2012 22:50

ну мне например на PHP куда проще сделать так:
<ul><?php echo '<li class="style">'.implode( '</li><li class="style">', $textList ).'</li>';?></ul>

чем делать так, где писанины больше:
<script>
var ul=["<?php echo implode( '", "', $textList );?>"];
someDiv.innerHTML="<ul><li class="style">"+ul.join("</li><li class="style">")+"</li></ul>";
</script>
И это не единственная причина

zebra 19.01.2012 22:52

Думаю для лучшей индексации в поисковиках

d-kaktus 19.01.2012 22:55

Согласен, я тоже раньше так делал. Но это увеличивает трафик, а так же нагружает апач->пхп больше, чем с вариантом js. При большом количестве обращений к странице с использованием js, а не пхп в данном случае, сервер без тормозов выдержит гораздо больше одновременных запросов.
Какие же реальные существуют причины, основанные не на лени, а на технической особенности?

devote 19.01.2012 22:58

Цитата:

Сообщение от zebra
Думаю для лучшей индексации в поисковиках

да это одна из важных причин

d-kaktus 19.01.2012 22:58

Цитата:

Сообщение от zebra (Сообщение 151539)
Думаю для лучшей индексации в поисковиках

Согласен, но я буду удивлён, что только это и есть основная причина.

zebra 19.01.2012 23:03

А если js отключен?

d-kaktus 19.01.2012 23:06

Цитата:

Сообщение от zebra (Сообщение 151543)
А если js отключен?

Если он отключен, те же сайты работать и не будут, т.к. используют js, но для других целей.

devote 19.01.2012 23:10

да одна простая причина, чистый HTML отделенный от JavaScript говорит о том что его писал нормальный программист, а не говнокодер, и такой код после этого программиста куда приятнее дописывать/дебажить, чем код в котором мешанина скриптов и тегов в одном. Лично я плююсь от таких сайтов написанных говнокодерами.

d-kaktus 20.01.2012 00:36

Цитата:

Сообщение от devote (Сообщение 151545)
да одна простая причина, чистый HTML отделенный от JavaScript говорит о том что его писал нормальный программист, а не говнокодер, и такой код после этого программиста куда приятнее дописывать/дебажить, чем код в котором мешанина скриптов и тегов в одном. Лично я плююсь от таких сайтов написанных говнокодерами.

Если приходится дебажить хтмл, то его писал писатель только вчера познакомившийся с разметкой или у него гнилые мозги. А мешать код не целесообразно, согласен, по этому js удобнее и логичнее вынести во внешний файл. Но когда хтмл и пхп смешивается подобным образом
<ul><?php echo '<li class="style">'.implode( '</li><li class="style">', $textList ).'</li>';?></ul>

По смешиванию это напоминает js. Если это тоже творится говнокодерами, тогда сочувствую - ты написал о самом себе.

Браузеры работают с js, css, html... по сути это разные вещи, но объединены в браузере. Не с проста, наверно, как думаешь?


Часовой пояс GMT +3, время: 15:21.