Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал.
но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
скажите это нормальные стиль писания на жаваскрипте?
по мне после с++ разит глаза кол-во скобок и все одним куском
Здравствуйте, pose, Вы писали:
P>Привет.
P>Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал. P>но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
P>скажите это нормальные стиль писания на жаваскрипте? P>по мне после с++ разит глаза кол-во скобок и все одним куском
Млин... Это же стиль jQuery... Нашли куда смотреть. Порядочные люди это чудо стороной обходят.
P>Привет.
P>Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал. P>но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
P>скажите это нормальные стиль писания на жаваскрипте? P>по мне после с++ разит глаза кол-во скобок и все одним куском
P>
Нет, это jquery головного мозга. Это адская нечитабельная неподдерживаемая каша. Ни в каком языке такой код нельзя назвать нормальным.
Более менее объективные недостатки: каждый $('<div/>') делает DOM createElement, элементы создаются одним синтаксисом, а аттрибуты к ним довешиваются другим, много уровней вложенности никак не отражено отступами.
А ведь можно document.createElement('DIV').innerHTML = '<div class=foo><div id=bar>'; Легко читать, легко что-нибудь дописать, верстальщики скажут спасибо, DOM лишний раз не дёргается, jquery для создания элементов окна вообще не нужен.
Здравствуйте, boot, Вы писали:
B>Здравствуйте, pose, Вы писали:
P>>Привет.
P>>Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал. P>>но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
P>>скажите это нормальные стиль писания на жаваскрипте? P>>по мне после с++ разит глаза кол-во скобок и все одним куском
B>Млин... Это же стиль jQuery... Нашли куда смотреть. Порядочные люди это чудо стороной обходят.
ну т.е. в jQuery — это образец как обычно пишется код?
зы. а что вместо джеквери предложить можете? вот мне нужна фотогаллерея на сайте
Здравствуйте, Temoto, Вы писали:
P>>Привет.
P>>Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал. P>>но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
P>>скажите это нормальные стиль писания на жаваскрипте? P>>по мне после с++ разит глаза кол-во скобок и все одним куском
T>Нет, это jquery головного мозга. Это адская нечитабельная неподдерживаемая каша. Ни в каком языке такой код нельзя назвать нормальным.
T>Более менее объективные недостатки: каждый $('<div/>') делает DOM createElement, элементы создаются одним синтаксисом, а аттрибуты к ним довешиваются другим, много уровней вложенности никак не отражено отступами.
T>А ведь можно document.createElement('DIV').innerHTML = '<div class=foo><div id=bar>'; Легко читать, легко что-нибудь дописать, верстальщики скажут спасибо, DOM лишний раз не дёргается, jquery для создания элементов окна вообще не нужен.
и я про тоже. как мне тут поменять местами дивы. без поллитра не обойтись
P>скажите это нормальные стиль писания на жаваскрипте?
Нет, ни капли не нормальный! Скорее всего это писал один из тех кто считает что jQuery — это и есть javascript.
В общем подходы такие как классы через прототипы, чейнинг довольно часто используются. Но как правило это выглядит куда проще.
Вот пример чейнинга, немного по лучше http://underscorejs.org/#chain
Здравствуйте, Пацак, Вы писали:
П>Здравствуйте, pose, Вы писали:
П>Javascript + jquery — это очень читабельно, понятно и просто! (с) Mamut
Проблемы не в языках, а в головах (c) Не_помню_кто
Здравствуйте, Пацак, Вы писали:
П>Здравствуйте, silverwolf, Вы писали:
S>>Проблемы не в языках, а в головах (c) Не_помню_кто
П>Кто б спорил. Но глядя на некоторые языки порой начинает казаться, что их создатели объявили охоту за головами.
Все языки полны по Тьюрингу, поэтому на любом можно написать нечитальный код (c) VladD2
Здравствуйте, os24ever, Вы писали:
P>>скажите это нормальные стиль писания на жаваскрипте?
O>Вот правильный стиль: http://github.com/leprosus/js-small/
if(typeIn(node, 'string'))
Вызов собственной сложной функции вместо typeof node === 'string' это правильный стиль? Я понимаю, что там есть другие вызовы, когда проверяется несколько типов, но их очень немного.
P>>>Привет.
P>>>Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал. P>>>но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
P>>>скажите это нормальные стиль писания на жаваскрипте? P>>>по мне после с++ разит глаза кол-во скобок и все одним куском
B>>Млин... Это же стиль jQuery... Нашли куда смотреть. Порядочные люди это чудо стороной обходят.
P>ну т.е. в jQuery — это образец как обычно пишется код?
Нет, это образец как обычно пишут люди, у которых jQuery вместо головы. jQuery – инструмент. Да, он толстый и распространяет порочные практики, даже в документации, у него есть свои особенности, как у любого другого инструмента. Но также с его помощью можно писать читаемый, поддерживаемый и относительно быстрый код. В данном случае проблема не в инструменте.
Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
Здравствуйте, Temoto, Вы писали:
T>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
Это парсинг строки на джаваскрипте == тормоза, за такой код в библиотеке надо расстреливать. В своём джаваскрипте на здоровье, а библиотека не должна вносить тормоза на ровном месте.
Здравствуйте, pose, Вы писали:
P>скажите это нормальные стиль писания на жаваскрипте?
да. у скриптеров культуры кодинга нет, потому всё есть сплошное говно
Здравствуйте, vsb, Вы писали:
T>>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
vsb>Это парсинг строки на джаваскрипте == тормоза, за такой код в библиотеке надо расстреливать. В своём джаваскрипте на здоровье, а библиотека не должна вносить тормоза на ровном месте.
Если скорость критична, то и $('<div/>') тоже недопустим, да и jquery вообще, а document.createElement() — наше всё.
T>>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
vsb>Это парсинг строки на джаваскрипте == тормоза, за такой код в библиотеке надо расстреливать. В своём джаваскрипте на здоровье, а библиотека не должна вносить тормоза на ровном месте.
Я думал, что такую строку jQuery отдаст браузеру через innerHTML. Если нет, то "не делайте так"
Здравствуйте, vsb, Вы писали:
vsb>Здравствуйте, Temoto, Вы писали:
T>>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
vsb>Это парсинг строки на джаваскрипте == тормоза,
Если бы все было так просто
Суть в том, что код из оригинала топика активно работает с ДОМом, то есть может вызывать repaint/reflow/relayout/restyle. Пример Temoto, скорее всего, будет работать через DocumentFragments. И это вполне может перекрыть все "тормоза" парсинга строки, которые в современных браузерах не такие уж и тормоза. На небольших фрагментах эти "тормоза" будут не заметны, а вот вставки по элементно в ДОМ могут быть заметны даже на 5-10 элементах.
P.S. Хотя вы таки правильно воспользовались знаком "==", ибо "==" это еще не "==="
Здравствуйте, Temoto, Вы писали:
T>>>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
vsb>>Это парсинг строки на джаваскрипте == тормоза, за такой код в библиотеке надо расстреливать. В своём джаваскрипте на здоровье, а библиотека не должна вносить тормоза на ровном месте.
T>Я думал, что такую строку jQuery отдаст браузеру через innerHTML. Если нет, то "не делайте так"
Вроде даже лучше, через createDocumentFragment. Это может быть даже быстрее если в html-е тяжелые стили. Я помню, когда тестировал то однозначного ответа не получил:
innerHTML — работает стабильнее по скорости в разных браузерах, но иногда вызывает фризы
createDocumentFragment — иногда быстрее иногда медленнее (сильно зависело от браузера, я так и не понял почему)
Здравствуйте, silverwolf, Вы писали:
S>Здравствуйте, vsb, Вы писали:
vsb>>Здравствуйте, Temoto, Вы писали:
T>>>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
vsb>>Это парсинг строки на джаваскрипте == тормоза, S>Если бы все было так просто S>Суть в том, что код из оригинала топика активно работает с ДОМом, то есть может вызывать repaint/reflow/relayout/restyle. Пример Temoto, скорее всего, будет работать через DocumentFragments. И это вполне может перекрыть все "тормоза" парсинга строки, которые в современных браузерах не такие уж и тормоза. На небольших фрагментах эти "тормоза" будут не заметны, а вот вставки по элементно в ДОМ могут быть заметны даже на 5-10 элементах.
Там же новый элемент создаётся, нет там никакого reflow.
Здравствуйте, dimgel, Вы писали:
T>>>Собственно, в том же jQuery можно сделать $("<div class=foo><div id=bar>...") в один шаг.
vsb>>Это парсинг строки на джаваскрипте == тормоза, за такой код в библиотеке надо расстреливать. В своём джаваскрипте на здоровье, а библиотека не должна вносить тормоза на ровном месте.
D>Если скорость критична, то и $('<div/>') тоже недопустим, да и jquery вообще, а document.createElement() — наше всё.
Случай вида $("<div>") обрабатывается отдельно и накладных расходов там минимум.
Здравствуйте, vsb, Вы писали:
vsb>Там же новый элемент создаётся, нет там никакого reflow.
Таки не заметил что он сначала создается, а потом вставляется, сорри.
Здравствуйте, pose, Вы писали:
P>ну т.е. в jQuery — это образец как обычно пишется код?
В самом jQuery много очень познавательных примеров использования JS, но это как книжка по дзен -- нельзя воспринимать буквально.
Обычно, в системном программировании, главным являются алгоритмы и структуры данных.
P>зы. а что вместо джеквери предложить можете? вот мне нужна фотогаллерея на сайте
Вот это самая правильная постановка вопроса. Для Вашей задачи вряд ли является критичным выбор.
О том, что далее спорить не буду.
Вообще, не могу предложить, почти ничего, совсем нет желания тратить время на устаревшие, по моему мнению, приемы (в этом и смысл движения, не западать окончательно на одном), а то, что актуально сейчас, никак не могу разглашать. Если попросите у мыщъх ссылку на на то, о чем он писал здесь
Здравствуйте, pose, Вы писали:
P>ну т.е. в jQuery — это образец как обычно пишется код? P>зы. а что вместо джеквери предложить можете? вот мне нужна фотогаллерея на сайте
Вспомнил случай, поэтому копну глыбже.
Десяток лет назад ко мне обратился один паренек с такой просьбой: "-- Мне бы хотелось научиться говорить как Вы."
Это сбило меня с толку, не знал что ответить, поэтому написал ему: "Приходите, что нибудь придумаем".
Оказался он типичным сангвиником, и интересовало его только одно -- "Как?". А я никогда не обращал внимания на то как говорю и пишу, гораздо важнее было _что_ говорю, пишу и думаю. Не случись такой просьбы, даже не задумался бы об этом.
В итоге дал ему книжку Дейла Карнеги, мне она не нужна, а ему идеально подходила, да и написана легко, что не маловажно. Но он ее не осилил, вернул через пару недель.
Так вот, копайте глыбже, нечего парить голову вопросом "Как?".
Здравствуйте, silverwolf, Вы писали:
S>Здравствуйте, Пацак, Вы писали:
П>>Здравствуйте, pose, Вы писали:
П>>Javascript + jquery — это очень читабельно, понятно и просто! (с) Mamut S>Проблемы не в языках, а в головах (c) Не_помню_кто
Вообще-то, "проблемы не в сортирах, а в головах" — это фраза профессора Преображенского
из "Собачьего сердца" Михаила Булгакова.
Здравствуйте, pose, Вы писали:
P>Привет.
P>Не приходилось ковыряться в готовых javascript фрейморках. обычно просто подключал и юзал. P>но вот захотел в lightbox поменят 2 дива местами. открыл js файл и ахнул
P>скажите это нормальные стиль писания на жаваскрипте? P>по мне после с++ разит глаза кол-во скобок и все одним куском
P>
говнокод потерт
Автор говнокода просто не умеет программировать и не знает jQuery.
Диалоги делаются в одну строку: $('#LightboxTemplate').tmpl(data).dialog(options);
Обработчики навешиваются один раз: $(document).on('click', '.handlerOpenMyXxx', openMyXxx);