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
А я Вам толкую о том, что прежде чем указывать, хорошенько подумайте - соответствуете ли Вы или ваш конечный результат работы этим требованиям.

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

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

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

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

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

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

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

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

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

Всегда.

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

  • 0

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

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

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

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

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-модификаторы? Бесполезный труд.

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

A: ???.

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

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

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

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

  • 0
Естественно, придется. Только такого 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
Я представитель именно кодерской части команды...

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

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

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

Link to comment
Share on other sites

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

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

Скажите, Вас беспокоит то, как будет отображаться страница при отсутствии стилей, при отключенных скриптах? Учитываете ли Вы, что может возникнуть необходимость конвертации в другой формат? Ну и наконец, достаточно ли Вам тегов 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
Кстати еще раз спасибо за скрипт выпадающего плавно меню.

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

У программиста есть четыре технологии, которыми он оперирует в разработке: 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
Скажите, Вас беспокоит то, как будет отображаться страница при отсутствии стилей, при отключенных скриптах?

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

  • 0

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

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

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

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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