Jump to content
  • 0

Вариант навигации.


Dimitry Wolotko
 Share

Question

Сейчас сижу с больной головой (болею), думаю над навигацией в админке тех сайтов, что я сейчас делаю (несколько сайтов, админка одна).

Поделился со знакомцем мыслями - он мне сразу кинул (http://www.artlebedev.ru/tools/technogrette/js/tabsheets/) - идея пришлась по вкусу, но код JS раздут - ужас просто, написал свой, посмотрите, мб я что - то из функционала пропустил?

PS - мо? чудо с помощью php вполне можно и динамическим сделать.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<style>
.mon2 {color:black;}
.mon2 {color:red;}
</style>
</head>

<body>


<script type="text/javascript" language="JavaScript">
function so2( objName1, objName2, objName3 )
{
oObj1 = document.getElementById( objName1 );
oObj2 = document.getElementById( objName2 );
oObj3 = document.getElementById( objName3 );
oObj1c = document.getElementById( objName1 + "c" );
oObj2c = document.getElementById( objName2 + "c" );
oObj3c = document.getElementById( objName3 + "c" );
oObj1.style.display = "block";
oObj1c.className = "mon3";
oObj2.style.display = "none";
oObj2c.className = "mon2";
oObj3.style.display = "none";
oObj3c.className = "mon2";
}
</script>

<div>
<span class="mon3" id="date2c" onclick='so2( "date2", "date3", "date4" );'>Вкладка 1 |</span>
<span class="mon2" id="date3c" onclick='so2( "date3", "date4", "date2" );'>Вкладка 2 |</span>
<span class="mon2" id="date4c" onclick='so2( "date4", "date2", "date3" );'>Вкладка 3 |</span>
</div>
<div style="display: block;" id="date2">
Содержимое вкладки номер один:

<table border="1">
<tr>
<td>table data</td>
<td>table data</td>

<td>table data</td>
</tr>
<tr>
<td>table data</td>
<td>table data</td>
<td>table data</td>
</tr>
</table>
</div>
<div style="display: none;" id="date3">
Содержимое вкладки номер два:

Аниме убивает ваш мозг!

</div>
<div style="display: none;" id="date4">
Содержимое вкладки номер три:

<h1>труляля</h1>
<h2>труляля</h2>
<h3>труляля</h3>
<h4>труляля</h4>
<h5>труляля</h5>
<h6>труляля</h6>
</div>

</body>
</html>

Link to comment
Share on other sites

  • Answers 154
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0
  AKS said:
А я Вам толкую о том, что прежде чем указывать, хорошенько подумайте - соответствуете ли Вы или ваш конечный результат работы этим требованиям.

Куда больше, чем ваш. Но не на все 100%, я это признаю, так как не стал еще более усложнять ( но это позволило бы лучше масштабировать ) код.

  Quote
Простой пример. Вам сказано, что ваша методика работы с именами стилевых классов ошибочна. Вы пишите, что это не проблема и решается на уровне документации. И после этого Вы еще называете себя "командным игроком"?

Она не ошибочна, она имеет ряд ограничений, а это разные вещи. Решение на уровне предпроектной документации имеет место во всех крупных проектах. Разработчики договариваются между собой, что и как они будут делать, а чего не делать. Это игра компромисов. Если программист не будет выполнять общие договоренности, то он сделает только себе хуже, ему придется переделывать свой код. Есть такая вещь как целесообразность. Делать что-то сверх того кода, что написан мной, считаю не целесообразным.

  Quote
Получается так - мне, как кодеру из вашей команды, мало знать стандартные правила о допустимых символах в именах классов. Перед началом своей работы (для того, чтобы впоследствии ваш сценарий работал без ошибок) мне придется обратиться еще и к вашей "псевдо-документации" и поискать в ней ответ на вопрос: "А какие символы мне разрешает использовать s0rr0w?".

Поверьте, вам придется по-любому их читать, эти правила. Их не так много, но они есть. Подумайте головой, что будет, если каждый будет делать так, как ему хочется, а не как того требует командная разработка? Один будет именовать классы вот так "x1", "vr13", другой "sBb", "bFb", третий "SuperReshenie", "MegaKomponent", а четвертый "ya_lyublyu_css", "obozhayu-ie". Это прямая дорога в банкроты той компании, в которой будут так работать такие разработчики.

  Quote
При этом, найдя "запрещенные символы", я получу пояснения, что, видите ли, s0rr0w не пожелал особо вникнуть в этот вопрос, поэтому и появились эти ограничения.

Нормальная "командная работенка".

Это нормально. Особенно в больших коллективах. Если так было сделано, значит на то были причины.

  Quote
А Вы задумываетесь о повторном использовании кода и т.д.?

Всегда.

  Quote
А теперь подумайте о том, что произойдет после изменений в вашем html-коде если в вашу getElementsByClassName вдруг (как Вы сами писали: "вдруг") будет передан элемент, у которого длина коллекции дочерних элементов будет равна 0?

Я уже написал, что я признаю данный баг, не предусмотрел. Исправить его, чтобы не было больше вопросов? Или еще будут какие вопросы?

Link to comment
Share on other sites

  • 0
  s0rr0w said:
Проблему? Да нет проблемы, проблема снова же сугубо в вашем воображении. Я уже написал, что достаточно кодеру дать пояснения по поводу именования классов и не заморачиваться.

Вместо того, чтобы подшлифовать одним микродвижением свой скрипт, вы дадите кодеру пояснения о нежелательности некоторых классов??? LOL Самое смешное (и вы это прекрасно знаете), что никаких пояснений и не было бы, откуда им взяться-то. Это же надо было знать. А у вас желчная отмазка вместо 'спасибо'.

  s0rr0w said:
Да, вызов getElementsByClassName непосредственно в inline-обработчике будет приводить к перекрытию вызова. Но никто не мешает написать window.getElementsByClassName

Надо же, стоило разжевать до каши, и первый настоящий проблеск. Логично. Не забудьте написать очередное пояснение кодеру. Про то, будет ли отловлен корректный window спрашивать не буду... :)

  s0rr0w said:
покажите мне человека, который собирается писать javascript-опусы непосредственно в inline-обработчиках?

Во-первых, это не опус, а самое примитивное обращение к собственной функции. Во-вторых, эта тема конкретно про этот идентификатор зачиналась скорее как иллюстративная ("кое-что из жизни бактерий"), если бы вы не превратили е? в разборку "а покажи, а докажи". В-третьих, показываю одного из тех, кто вызывает функции с помощью инлайн-обработчиков и совершенно ничего не знает об их особенностях - это s0rr0w. Было - "никаких граблей не вижу!", стало - "подумаешь, грабли!".

  s0rr0w said:
Так, кажется я пользовался старыми данными по JS-интерпретатору. Цикл в современных браузерах уже работает на уровне do-while и while. Можно смело переписывать код.

Беда. Я вам про то, что скорость тут вообще не при делах, а вы опять про скорость. Не в этом же дело, ну, что, по-вашему do-while реализован на уровне движков сильно отлично от while?

  s0rr0w said:
Человек указывает на какие-то проблемы, которые проблемами то не могут считаться. Это скорее особенности кода, чем баги.

Конечно особенности кода, а кто про баги-то говорил? Ну, не работает скрипт у тех, кто соответствующим образом модифицирует юзерагент, ну, нельзя использовать валидные имена классов, ну, используется do-while, улетающий в вечный луп при нулевом индексе, ну, подвешены в воздухе конфликтные имена для IE, ну, размазан код в html, ну, логика полудохлая... Ничего страшного. И в критике нет ничего страшного. Из всего надо извлекать пользу, незачем ввязываться в соревнование, если организм не справляется с болезненной реакцией на негативные оценки.

  s0rr0w said:
Я не же указываю вам на то, что именование JS переменных должно происходить по правилам JS, а именно первая должна быть буква. Переменные типа "_" и "$" хоть и работают, но являются синтаксическими ошибками.

Являются синтаксическими ошибками? Эффектный финал. LOL

Link to comment
Share on other sites

  • 0
  s0rr0w said:
Я уже написал, что я признаю данный баг, не предусмотрел. Исправить его, чтобы не было больше вопросов? Или еще будут какие вопросы?

Вы исправьте, исправьте. А я посмотрю, что Вы там исправили.

Подскажу, (чтобы не говорили, что ехидничаю), что я Вам не о том, о чем Zeroglif...

Link to comment
Share on other sites

  • 0
  Zeroglif said:
Самое смешное (и вы это прекрасно знаете), что никаких пояснений и не было бы, откуда им взяться-то. Это же надо было знать.

Не-а. Гораздо смешнее, что здесь на этом форуме уже была тема о регвырах и работе с именами классов. Но самое смешное, что Вы там это рассказывали не кому-нибудь, а мне и s0rr0w!

Думаю, что и это не все. Судя по тому, как о(у)сваивается информация, спустя некоторое время Вам придется снова рассказывать об этом s0rr0w (уже в третий раз). Вот тогда уже не справится ваш организм.

)))))))))))))))))))))))))))))))))))))))

Link to comment
Share on other sites

  • 0
  s0rr0w said:
Поверьте, вам придется по-любому их читать, эти правила. Их не так много, но они есть.

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

  s0rr0w said:
Подумайте головой, что будет, если каждый будет делать так, как ему хочется, а не как того требует командная разработка?

Теперь я наконец-то понял, о какой команде идет речь и какая там в этой команде "командная разработка".

Link to comment
Share on other sites

  • 0
  Quote
Вместо того' date=' чтобы подшлифовать одним микродвижением свой скрипт, вы дадите кодеру пояснения о нежелательности некоторых классов???[/quote']

Хотел бы увидеть от вас это "микродвижение". Выдадите код? :) Уже не первый раз прошу, но, что-то мешает вам.

  Quote
Надо же, стоило разжевать до каши, и первый настоящий проблеск. Логично. Не забудьте написать очередное пояснение кодеру. Про то, будет ли отловлен корректный window спрашивать не буду... :(

Мдааа... Интересно, почему у меня никогда не возникает проблем с моим кодом? Странно.

  Quote
Во-первых, это не опус, а самое примитивное обращение к собственной функции.

Это притянутый за уши вариант. Приведите хоть один осмысленный код, который можно сделать при помощи данной функции непосредственно в inline-обработчике.

  Quote
Во-вторых, эта тема конкретно про этот идентификатор зачиналась скорее как иллюстративная ("кое-что из жизни бактерий"), если бы вы не превратили е? в разборку "а покажи, а докажи".

Потому что меня очень мало интересуют теоретические выкладки и борьба с ветряными мельницами. Все приведенные примеры не являются проблемой ( за исключением бага с do-while).

  Quote
В-третьих, показываю одного из тех, кто вызывает функции с помощью инлайн-обработчиков и совершенно ничего не знает об их особенностях - это s0rr0w.

Обалдеть, оказывается что это особенность обработчиков. А раньше их называли откровенно бажными...

  Quote
Было - "никаких граблей не вижу!", стало - "подумаешь, грабли!".

Опять двадцать пять. Грабли существуют в вашей теории. На практике на них наступают от силы пол процента людей. Серьезные грабли.

  Quote
Так' date=' кажется я пользовался старыми данными по JS-интерпретатору. Цикл в современных браузерах уже работает на уровне do-while и while. Можно смело переписывать код.[/quote']

Беда. Я вам про то, что скорость тут вообще не при делах, а вы опять про скорость. Не в этом же дело, ну, что, по-вашему do-while реализован на уровне движков сильно отлично от while?

  Quote
Ну, не работает скрипт у тех, кто соответствующим образом модифицирует юзерагент,

А что есть "соответствующий образ"? А кто сказал что он не работает?

Заметьте, он прекрасно справляется с задачей отделить IE от FF.

  Quote
ну, нельзя использовать валидные имена классов

Читайте пояснение выше. Вы даете слишком много свободы разработчику. Наверное поэтому у вас вечно с чем-то грабли случаются.

  Quote
, ну, используется do-while, улетающий в вечный луп при нулевом индексе,

Повторение как мантры не приводит к нужному результату. Обновил код. Сейчас такого бага нет.

  Quote
ну, подвешены в воздухе конфликтные имена для IE,

Мда. Снова попытка доказать мне, что я не прав, но как всегда без реальных доказательств.

  Quote
ну, размазан код в html,

Типа нельзя или плохо? Докажите сначала, что это реально плохо. Уже не первый раз слышу одно и то же, но доказательств пока что пшик. Предоставьте правильный механизм, а я уж посмотрю, насколько он эффективен.

  Quote
ну, логика полудохлая...

Что не понимаю, то не принимаю... Расскажите как мне, как бы вы сделали, а лучше сделайте. И я расскажу вам, почему ваша логика - трэш.

Но, как я вижу, вы больше теоретических дел мастер. :)

  Quote
незачем ввязываться в соревнование, если организм не справляется с болезненной реакцией на негативные оценки.

Пока что я вынес всего один правильный урок из данного "соревнования". Это про скорость циклов, мои данные серьезно устарели с Mozilla 0.8.3, и все же надо проверять полученную информацию из других источников. Остальное меня только успокаивает. Меньше конкурентов.

  Quote
Являются синтаксическими ошибками? Эффектный финал. LOL

Признаю, неправ. Не проверял данную информацию с 96-го года.

Link to comment
Share on other sites

  • 0
  AKS said:
Естественно, придется. Только такого js-программера уволят при первой возможности, раз html-кодеру приходится думать, как и что писать, чтобы потом js-программист сумел с этим справиться.

Ах, вот оно что... В разработке самый главный кодер... Ай молодца! Я бы выгнал обоих, если бы они не договаривались между собой, что нужно сделать, чтобы всем было хорошо, а не кому-то одному. Мало того, они должны согласовать свои действия с cgi-программером, чтобы они оба не наделали никому не нужных сферических коней в вакууме.

Link to comment
Share on other sites

  • 0
  s0rr0w said:
Я бы выгнал обоих, если бы они не договаривались между собой, что нужно сделать, чтобы всем было хорошо, а не кому-то одному.

Да нет, выгонять их Вам не придется. Вы ведь их научили правильной командной игре. Они договорятся между собой, напишут такого же, что Вы нам тут показали.

Вообще, сдается мне, что здешний опус вовсе не из-под вашего пера. Что скажете? Всей вашей "командой" писали, договариваясь между собой, чтобы "всем было хорошо"?

Link to comment
Share on other sites

  • 0

Пропустил ваш ответ без внимания. Исправляю ситуацию.

  AKS said:
Q: DT, DD нельзя использовать без DL. Последствия переноса части кода в другую ветку дерева может привести к потенциальному багу с отображением.

A: Используйте методы DOM для создания, клонирования, вставки необходимых элементов.

Отлично, и сколько мне дополнительного JS-кода придется написать, чтобы провести примитивную модификацию HTML-кода? Гениальное решение. Все люди стараются переходить на темплейт-системы, а вы предлагаете генерировать HTML при помощи DOM-методов. В итоге получится миллион строк бесполезного кода.

  AKS said:
Q: Ссылки создаются скриптом. Что делать, если понадобится уникальные коды для каждой закладки, где не только CSS будет изменен, но и отличаться HTML?

A: Перечень допустимых дочерних элементов для :

#PCDATA | TT | I | B | BIG | SMALL | EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM | A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO | INPUT | SELECT | TEXTAREA | LABEL | BUTTON )* -( A )

Зачем мне перечень дочерних элементов? Я спрашивал про другое, как стилизировать отдельные табы, если закладка состоит всего из ОДНОГО элемента. Дописывать DOM-модификаторы? Бесполезный труд.

  AKS said:
Q: Таблицу нельзя использовать после H, так как присваивается display: block.

A: ???.

Вы в курсе, что у таблиц свойство display = table?. И какие последствия присваивания тегу свойства display?

  AKS said:
Q: Что делать, если надо будет между контентом табов и самим переключателем вставить еще какие-то теги?

A: Если нужно вставить, надо взять и вставить.

Ага, использовать JS-функции.

Вот и оцените теперь масштабируемость вашего кода. Мое решение в подметки не годится вашему. Вы ведь делаете очень качественный код.

Link to comment
Share on other sites

  • 0
  AKS said:
А getElementsByClassName не обновляли еще? Что, подчиненные еще не успели договориться?

А зачем мне это исправлять? Еще никто не доказал, что мой код не будет работать на новых версиях браузера. Если кому-то надо, он поправит это сам так, как ему захочется.

Link to comment
Share on other sites

  • 0
  s0rr0w said:
А зачем мне это исправлять? ...Если кому-то надо, он поправит это сам так, как ему захочется.

Вот оно - стопроцентное решение. Вот она - командная работа. Вот она - единственно верная идея. Наконец-то можно с этим покончить, сделав соответствующие выводы.

  s0rr0w said:
Отлично, и сколько мне дополнительного JS-кода придется написать...

Я бы ответил так - Вам лучше вообще не писать js-код, раз уж в вашем распоряжении есть лишь информация 96-го года.

  s0rr0w said:
Бесполезный труд.

В этой теме все бесполезное (я написал это еще в самом начале).

  s0rr0w said:
Вы в курсе, что у таблиц свойство display = table?.

Да, в курсе. А Вы в курсе, что не Вы придумали работать с именами классов. Если нет, то посмотрите в начало темы - там эта практика применялась и без ваших советов. А еще посмотрите, какие варианты разметки я предлагал, тогда забудете про таблицы.

  s0rr0w said:
Ага, использовать JS-функции.

Кочечно, даже Вы их используете, несмотря на противопоказания, высказанные некоторыми людьми в этой теме.

  s0rr0w said:
Вот и оцените теперь масштабируемость вашего кода

Я ведь Вам русским языком объяснил, что моя писанина - это "адский яваскрипт". Я даже написал за нас обоих, что в этой теме нет готовых решений. НЕ-Е-ЕТУ!

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

Link to comment
Share on other sites

  • 0
  s0rr0w said:
  AKS said:
Естественно, придется. Только такого js-программера уволят при первой возможности, раз html-кодеру приходится думать, как и что писать, чтобы потом js-программист сумел с этим справиться.

Ах, вот оно что... В разработке самый главный кодер... Ай молодца! Я бы выгнал обоих, если бы они не договаривались между собой, что нужно сделать, чтобы всем было хорошо, а не кому-то одному. Мало того, они должны согласовать свои действия с cgi-программером, чтобы они оба не наделали никому не нужных сферических коней в вакууме.

Тут я с вами согласен на все 100%. Если кто то в команде выше, то это не гуд. должна быть команда. Я представитель именно кодерской части команды и с программером легко ладим. Он не нагружает свои скрипты лишней шелухой, я не наваливаю лишнего стилистического маразма в html. НО когда программист пытается рулить и навязывать правила игры и пытается меня учить как я должен делать html составляющую общей работы, грош цена такому "командному" игроку. Как говорится мнения у всех на все могут быть разные, но нужно их засовывать в одно место перед клиентом или тем кто тебе платит деньги. Если тебе нравится верстать табами, а клиенту нужны дивы, то придется делать дивами.

Кстати пример относительно фотошопа по меньшей мере просто абсурден. Речь идет о скрипте а не о программном продукте с уникальными функциями. Если клиенту поставить условия чего он должен а чего не должен использовать с продуктом, он скорее всего найдет другой продукт и заплатит за него больше, лишь за то чтоб он мог работать с ним в линуксе под каким нибудь эмулированным IE6 (жестокая вещь в плане понимания скриптов).

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

Кстати относительно e107 там хорошая связка php и JS и там оптимальное соотношение. Кстати эта система на 3 месте в мире. Я обладая вполне посредственными знаниями смог модернизировать JS библиотеку там под свои нужды. Еще раз напомню я не JS программер, мне ближе php и html с css.

Link to comment
Share on other sites

  • 0
  guvatara said:
Я представитель именно кодерской части команды...

О, есть возможность узнать мнение.

Скажите, Вас беспокоит то, как будет отображаться страница при отсутствии стилей, при отключенных скриптах? Учитываете ли Вы, что может возникнуть необходимость конвертации в другой формат? Ну и наконец, достаточно ли Вам тегов DIV, SPAN, A, TABLE, IMG, поскольку остальные s0rr0w предложил игнорировать?

Да, и еще, если не секрет, расскажите о своих инструментах.

Link to comment
Share on other sites

  • 0
  AKS said:
  guvatara said:
Я представитель именно кодерской части команды...

О, есть возможность узнать мнение.

Скажите, Вас беспокоит то, как будет отображаться страница при отсутствии стилей, при отключенных скриптах? Учитываете ли Вы, что может возникнуть необходимость конвертации в другой формат? Ну и наконец, достаточно ли Вам тегов DIV, SPAN, A, TABLE, IMG, поскольку остальные s0rr0w предложил игнорировать?

Да, и еще, если не секрет, расскажите о своих инструментах.

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

ну я пишу изначально в html, потом это режется под cms, так что приходится учитывать и этот факт. Но соблюдение всех стандартов это обязательное условие. Допустимо 2 ошибки валидатора на 1000 символов. И то это уже не гуд.

ну тег table я не использую вообще (таковы требования клиента) . span тоже. в основном это списки, дивы, картинки и ссылки. Все остальное это чистый css. Там где css не помогает использую js. Я стараюсь делать html код в который можно внести корективы в любой момент и чтоб при этом не потерялся общий строй шаблона.

я использую dreamweaver, но он мне нужен лишь для упрощения написания тегов(он их просто дописывает). так что можно сказать что мой инструмент это руки и голова. Ну и еще книжки, гугла и совет знающего человека на форуме. Просто нужно уметь вынести полезную информацию из груды на первый взгляд нелогичной информации.

Link to comment
Share on other sites

  • 0
  guvatara said:
Кстати еще раз спасибо за скрипт выпадающего плавно меню.

Вот это да! Я сначала не понял, о чем речь (думаю: "То ли ко мне, то ли нет"). А потом вспомнил (тоже не сразу), что это Вы спрашивали на xhtml.ru про сценарий! Во, как мир тесен. :)

Я вообще-то переписал тот сценарий полностью. Надо бы Вам предоставить переделанный вариант, раз уж Вы пользуетесь этим скриптом...

Link to comment
Share on other sites

  • 0
  AKS said:
Вот оно - стопроцентное решение. Вот она - командная работа. Вот она - единственно верная идея. Наконец-то можно с этим покончить, сделав соответствующие выводы.

Эх, молодо-зелено у вас в этом плане. Придя в одну неплохую команду, первую задачу, что передо мной поставили, было прочтение документации для разработчика. Меня там мало чего касалось, но все же было. В теории - нужно писать так, чтоб комар носа не подточил. Но это можно писать вечно. А можно упростить себе задачу, сузив многообразие влияющих факторов, и заработать деньги уже сегодня, а не послезавтра, после-послезавтра или через несколько десятков лет.

  Quote
Я бы ответил так - Вам лучше вообще не писать js-код, раз уж в вашем распоряжении есть лишь информация 96-го года.

Моя информация - это всего лишь частный случай. Код работает и без этого.

  Quote
В этой теме все бесполезное (я написал это еще в самом начале).

Код показывает мышление. Кто какими категориями оперирует.

У программиста есть четыре технологии, которыми он оперирует в разработке: HTML, CSS, DOM, JS. Большинство строит "однонаправленные" по логике скрипты

JS -> DOM ->HTML -> CSS (На JS скриптах строим при помощи DOM структуры для HTML, накладываем поверх CSS )

Я мыслил такими категориями года 4 назад. Крайне ущербная логика работы. Чтобы дать хоть какую-то гибкость HTML-кода, приходится очень сильно усложнять JS-код. Намного проще применять HTML-темплейтирование, когда все необходимые строительные материалы для будущей компоненты уже есть в HTML-е и CSS-е. Остается только собрать все в кучу. Мало того, ноды могут выступать контейнерами для данных, могут выступать логическими элементами в системе, нести индикативную и прочие фукнции. Перемещение нод по дереву - естественный процесс в интерфейсе. Так как нода может собой представлять самодостаточный объект в системе, то ее перемещение не вызовет проблем с фукнциональностью системы в целом.

Опять же, вернемся к эмуляции онклика на закладке таба. Ортодоксы считают, что за активацию таба должна отвечать специальная фукнция, которая должна принимать... а что она должна принимать? ID таба? Номер?

Рассмотрим первый вариант - ID ноды. Все хорошо, идея хороша, но придется городить для всего интерфейса генератор уникальных ID. Потому что табуляторов может быть не один, и не два.

Рассмотрим второй вариант - номер. Самое дурацкое решение. Опять же потому, что может возникнуть ситуация смешения нескольких разных табов их разных концов дерева HTML. Допустим, компонент состоит из уже имеющихся табов двух различных табуляторов. Номера могут совпадать, система не будет работать.

Теперь смотрим на мой вариант - есть список переключалок. Переключалка всегда знает, какую ноду она переключает, так как она была там прописана до переноса. Тот же селект работает не с ID, не с номерами, а непосредственно с нодами. Если будет перенесен какой-то таб к уже имеющемуся списку, достаточно будет отправить список нод в уже имеющуюся функцию.

Переключателем таба является не функция, а нода. Так как нода имеет достаточно данных про самоидентификацию, то она выполнит задачу переключения, запустив нужную фукнцию. Какую именно - это опять же знает только нода.

Итог, немного изменив обычный ход мыслей, получаем куда более гибкую систему в целом.

Link to comment
Share on other sites

  • 0
  AKS said:
Скажите, Вас беспокоит то, как будет отображаться страница при отсутствии стилей, при отключенных скриптах?

На это в серьезных продуктах вообще никто не обращает внимание. В документации указано, что это, это, это и это должно быть включено. Нет - сами себе злобные Буратины.

  AKS said:
Учитываете ли Вы, что может возникнуть необходимость конвертации в другой формат? Ну и наконец, достаточно ли Вам тегов DIV, SPAN, A, TABLE, IMG, поскольку остальные s0rr0w предложил игнорировать?

Не надо только перевирать мои слова. :mad: Найдите мне ссылку, в которой я говорил, что остальные теги надо именно игнорировать.

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

Link to comment
Share on other sites

  • 0
  guvatara said:
Кстати пример относительно фотошопа по меньшей мере просто абсурден. Речь идет о скрипте а не о программном продукте с уникальными функциями. Если клиенту поставить условия чего он должен а чего не должен использовать с продуктом, он скорее всего найдет другой продукт и заплатит за него больше, лишь за то чтоб он мог работать с ним в линуксе под каким нибудь эмулированным IE6 (жестокая вещь в плане понимания скриптов).

Речь идет о наборе скриптов, которые складываются в готовый продукт.

Клиенту не ставят условия. Это не тот вариант.

Клиент ищет себе продукт. Он рассматривает все варианты на рынке, и выбирает тот, который максимально будет выполнять его задачи. Выбор платформы - это не то, на чем заостряют внимание. Если выбор платформы критичен, то самый первый вопрос будет о том, на какой платформе работает продукт. Но не факт, что заказчик не меняет мнение. Покупка больших продуктов - это решение не для одного дня. Это ответственное решение для бизнеса.

Link to comment
Share on other sites

  • 0

s0rr0w, надоело мне переливать из пустого в порожнее. Предлагаю следующее.

Раз Вы, как профи, считаете ваш вариант стопроцентными и много_там_еще_каким, давайте обратимся к модераторам с просьбой вынести этот вариант в какую-нибудь тему, вроде "Готовые решения". Пусть ваш вариант займет достойное место, украсив форум. Можно предусмотреть возможность добавления рецензий эксперта(ов ?), как, например:

  WingedFox said:
... s0rr0w, за наиболее практичное решение, идущее из опыта (очень похоже на код человека, учившегося на шишках, а не умных теоретизированиях).

Да, еще напоследок:

  s0rr0w said:
Не надо только перевирать мои слова. mad Найдите мне ссылку, в которой я говорил, что остальные теги надо именно игнорировать.

Мной была предложена определенная разметка. Вот то, что Вы писали в ответ:

1. Все то многообразие тегов практически невостребовано в интерфейсах.

2. ...это (сложности при работе с разметкой) нивелирует важность логического оформления кода, и банально начинает сводиться к нескольким тегам: DIV, SPAN, A, TABLE (и все запчасти), IMG.

3. ...предложенные варианты (

) - лучше, удобнее для разработчика.

Все это в двух словах будет выглядеть, как: "предлагаю проигнорировать остальные теги (все, кроме пяти)".

Link to comment
Share on other sites

  • 0
  AKS said:
Все это в двух словах будет выглядеть, как: "предлагаю проигнорировать остальные теги (все, кроме пяти)".

Не надо думать за меня и фантазировать, а потом выдавть свои фантазии за мои слова.

Я не призывают не использовать другие теги. Я говорю про то, что эти теги мало востребованы. Разницу чувствуете? Нет?

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

Ответьте на вопрос, что делают среди логически и функционально обоснованных тегов такие универсалы как DIV и SPAN? Ведь это теги бесполезны с точки зрения "правильной" логической разметки.

Link to comment
Share on other sites

  • 0
  s0rr0w said:
Можно насильственно органичивать используемое ПО и железо.

Я просто повторил то что было написано где то в начале этого топика. Не забывайте, что это всего лишь скрипты. Набор скриптов. Все таки скриптов, а не чего то иного. И продукт который ориентирован на узкий сигмент рынка и не будет иметь большого комерческого успеха.

Кстати вы где в этом топике это упоминали, когда объясняли наличие перехватчиков ошибок скрипта.

Я безусловно признаю, что вы профессионал в своей профессии. Но нужно учитывать так же, что ваш продукт может быть отвергнуть банально из-за того что он не будет работать именно в такой, пускай и редкой, кофигурации. Качественная верстка отличается от не качетственной имено тем, что в качественной страница выглядит одинаково во всех броузерах, включая Оперу, Осликов 6, 7, Лису, Сафари 3,02 бета под виндой и сафари 2,*** под маком. Можете мне поверить добиться сего сложно, но вполне реально. Зато потом этот продукт смогут использовать подавляющее большенство клиентов и все будут довольны и репутация данной работы и ее создателя будет в разы выше из-за банального учета того самого мелкого сигмента клиентов. Просто сам факт, что вы об этом подумали будет вам самой честной и действенной рекламой. Ведь лучшая реклама продукта, когда его хвалят клиенты.

Хотя это все ИМХО. Просто долгая работа в отрасли, где продвижение товара является приоритетной задачей, научила меня, что даже 5% дополнительной прибыли стоят того чтоб немного напрячься.

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

Link to comment
Share on other sites

  • 0
  s0rr0w said:
Разницу чувствуете? Нет?

Вы предложили пренебречь (проигнорировать, см. значение слова) определенными тегами для достижения лучшего результата (удобного для разработчика, для Вас).

  s0rr0w said:
Ответьте на вопрос, что делают среди логически и функционально обоснованных тегов такие универсалы как DIV и SPAN? Ведь это теги бесполезны с точки зрения "правильной" логической разметки.

Ищите ответы на вопросы?

Grouping elements: the DIV and SPAN elements (это для самостоятельного ознакомления, надеюсь справитесь).

Link to comment
Share on other sites

  • 0
  guvatara said:
Я просто повторил то что было написано где то в начале этого топика. Не забывайте, что это всего лишь скрипты. Набор скриптов. Все таки скриптов, а не чего то иного. И продукт который ориентирован на узкий сигмент рынка и не будет иметь большого комерческого успеха.

Вы немного путаете мелкие поделки, по типу e107, и более серьезные продукты, цена которых начинается с пятизначных цифр. Так вот, на рынке взрослых программных решений пишутся под требования заказчиков. Там успех уже гарантирован, так как

1. Конкуренция как правило небольшая

2. Заказчики выбирают функциональность продукта в первую очередь, а под него потом строят платформу. Но не наоборот.

И, как вам уже говорили раньше, тестирование на многих платформах может скушать приличную часть вашего бюджета, а экономического эффекта от этого будет ноль. Или даже минус.

  guvatara said:
Но нужно учитывать так же, что ваш продукт может быть отвергнуть банально из-за того что он не будет работать именно в такой, пускай и редкой, кофигурации. Качественная верстка отличается от не качетственной имено тем, что в качественной страница выглядит одинаково во всех броузерах, включая Оперу, Осликов 6, 7, Лису, Сафари 3,02 бета под виндой и сафари 2,*** под маком.

В больших продуктах на это смотрят в последнюю очередь. Главное - функционал продукта.

Тестирование продукта под все эти браузеры займет 80% разработки. Вы быстрее обанкротитесь.

  guvatara said:
Можете мне поверить добиться сего сложно, но вполне реально. Зато потом этот продукт смогут использовать подавляющее большенство клиентов и все будут довольны и репутация данной работы и ее создателя будет в разы выше из-за банального учета того самого мелкого сигмента клиентов. Просто сам факт, что вы об этом подумали будет вам самой честной и действенной рекламой. Ведь лучшая реклама продукта, когда его хвалят клиенты.

Типичное мышление мелкой розницы. Это будет играть роль на продуктах, стоимость которых невелика. Лучшая реклама продукта - его функциональность.

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

Опять же - решение мелкого и среднего бизнеса. В крупных структурах критерии оценок другие. Обычная практика - просят на тестирование продукт, чтобы определить удобство и качество работы, а также потенциальные грабли. Никто не покупает наобум продукты, стоимость которых исчисляется от 5 знаков.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy