![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 4 Всего: 29 |
Насколько можно доверять JS управление своим сайтом? Бытует мнение, что лучше его не использовать вообще, если использовать, то дублировать "чистым" HTML и, ни в коем случае, не доверять ему важные функции, без которых просмотр сайта не возможен... Спрашиваю, так как сам являюсь "жертвой" приверженности JS. Прошу прощения, если задал слишком глупый вопрос, но хотелось бы знать как к этим вопросам относятся профессионалы...
|
|||
|
||||
| Bastet |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 26.9.2005 Где: Тильзит Репутация: нет Всего: 6 |
С точки зрения юзабилити сайт должен оставаться доступным даже с отключенным js. Соответственно, обязательно должен использоваться тег <noscript>.
Но, думаю, на практике трудно встретить на просторах сети сайт с отключенным js, еще труднее - его не поддерживающий. Так что тут только тебе решать: может ли сайт позволить себе потерять несколько потенциальных посетителей или нет. --------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Вовсе даже не глупый, а наоборот, очень хороший вопрос. Я бы даже сказал, философский
Я вот тут последние две недели на работе сижу, втыкаю в JavaScript, в котором раньше был вообще ни уха ни рыла. Впечатления примерно такие: да, это очень клево, что есть такая вешь как объектная модель документа, посредством которой можно доступиться и реализовать практически любой динамический эффект. Но! Цена, которую ты платишь за возможность крутых наворотов - твое время и нервы - слишком высока. Просто неоправданно высока. Потому что программировать на JS - это примерно как переходить оживленную магистраль с завязанными глазами. Никакого тебе контроля синтаксиса, верификации имен, проверки типов. Дебаггер - отстойный. Документации толковой - кот наплакал. Скрипты, что в интернете валяются - как будто двенадцатилетним школьником написаны, в понедельник с бодуна левой ногой. А уж как доходит до кросс-браузерной совместимости, тут уж вообще звездец начинается. И потихоньку тебя начинать точить неотступная мысль: "А нахера?". И ты понимаешь, что возразить-то нечего. Действительно, нахера козе баян? То есть я понимаю, есть сайты, где JavaScript - это соль его содержимого. Ну там, какой-нибудь Морской Бой онлайн. Или крестики-нолики. Но если сайт информационный, то может лучше сосредоточиться на контенте? Короче, я для себя сделал предварительный вывод: никогда не браться за JavaScript, за исключениев случаев, когда (а) функциональность абсолютно необходима, и при этом (б) серверного решения не существует или оно слишком неуклюже или трудоемко. Все сугубо мое имхо -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| DemoCode |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: 3 Всего: 41 |
Именно из-за отсутствия кроссплатформенной совместимости стараюсь пользоваться им только в случае крайней нужды.
Это сообщение отредактировал(а) DemoCode - 21.10.2005, 19:06 -------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
|||
|
||||
| Zeroglif |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Интересное сравнение, но я бы сказал иначе - эта оживлённая магистраль мне пофиг, потому как я в режиме бога, вернулся и снова пошёл. Документации полно, всё свежее сразу обсуждается всеми сразу (в общем-то, достаточно только Del.icio.us мониторить и всё), форумы, блоги, поисковые машины по кодам, те же FF-расширения вскрытые скалпелем и т.д. и т.п... Это не сравнится ни с каким осязаемым мануscriptом.
Да, этот веб, гад, пока ещё такой, битые ссылки не самоуничтожаются, скрипты 90-х годов не умнеют. Но это не значит, что ничего нового не пишут Море разливанное.
Я для себя сделал вывод: бандитское обращение с Javascript-ом в прошлом веке как со стороны создателей user-agent-ов, так и со стороны вебмастеров-самоучек подмочило ему репутацию и до сих пор отпугивает неразумных, хотя на самом деле в умелых руках - это конфетка, а не язык. Ням-ням. |
||||||
|
|||||||
| Bastet |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 26.9.2005 Где: Тильзит Репутация: нет Всего: 6 |
Stampede, не надо ругать js. Он все таки красив и изящен при грамотном использовании... И, как правило, js решает как раз те задачи, которые никак не решить на стороне сервера.
Отсутствие кроссбраузерной совместимости действительно напрягает, особенно прикладников. Поначалу просто бесило... + в сети полно примеров ужасного использования js - типа бегущего текста в строке состояния или скроллинга, живущего своей жизнью... Согласна с Zeroglif, в умелых руках и на благие цели - язык-конфетка. --------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Zeroglif, Bastet - согласен, не возражаю. Я же и сам говорю, доступ к элементам объектной модели документа - это просто класс. Я, если честно, и не подозревал о существовании стольких возможностей. Но у меня как у новичка есть вопросы. Чтобы не разводить здесь оффтоп, я завел новую тему. Если не трудно, прошу пройти и поделиться соображениями.
Wolf1994, извини, если отвлек от твоего вопроса -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| Sardar |
|
||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Это же на сколько нужно не дружить с яндексом и гуглом!
Ты не видел XUL, а скоро выйдет и XAML в IE, "странички" будут иметь "обычный програмный" интерфейс. Тогда ты поймёшь что остался позади, а мир движеться. Не смотри на старые морально устаревшие скрипты. Полистай для справки xulplanet.com хотя бы, пощи в вебе слово AJAX. Забудь что JS юзаеться для анимаций, это делаеться только в учебных целях что бы отработать навыки. JS это мощный скриптовый интерфейс к любому окружению и любой сложной аппаратуре. Если бы в QuickVision (здоровенный такой микроскоп) юзался бы JS а не VBS, то код мой был бы раз в 5-7 меньше, логичней, мощней и проще. Впрочем нужен опыт что бы это понять, не много народу работают не только с PC и не только с императивными языками C/C++/Java/C#
JS кроссплатформенный язык, во всех имплементациях один и тот же код будет исполняться одинакого(в мозилле есть ещё геттеры/сеттеры которых нигде больше нет, но их не рассматриваем). API браузерное разное, это да. НО! W3C уже сколько лет существует и делает стандарты, которые все браузер поддерживают. Если чеовек не хочет читать эти стандарты и по прежнему пишет document.all, document.layers и не юзает style.display с прицелом на очень старые браузеры - то это его личные проблемы. Нет старых браузеров, они умерли, сейчас все поддерживают стандарты W3C, даже браузеры в КПК.
Возможно ты будешь удивлён, но W3C DOM это не фича JS, это стандарт для всех языков, DOM он и в африке DOM ИМXО: в мире JS почти 70% народа не догоняют тонкостей языка, а пишут в стиле приобретённым в C/C++ и подобных языках. Это не плохо, но ограничивает сознание человека. Программист на Python лучше будет писать на JS, хотя синтаксисы разные, но языки ближе по духу. Правда он будет удивлённ странными списками в JS(Array), отсутствием tuples и ещё туевой хучей вещей, которые толстолобики из нетскейпа не знали (а ещё и из ECMA, надо же было им язык стандартиризовать без пересмотра возможностей, а ведь могли и расширить. О try/catch догадались когда уже везде было имплементированно, вот такие "тормознутые" бюрократы в мире JS). Почти 80% народа не может провести границу между API окружения и JS, что в принципе логично. JS не может существовать сам по себе, это мощный язык для управления существующими обьектами некоторого окружения, будь то браузер или буровая установка. Почти 90% пользователей не знают что JS используеться не только в браузерах -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||
|
|||||||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Sardar, я тебя уважаю, но я тебя очень прошу, не надо пытаться строить из себя умника за мой счет. Если я говорю, что "я же и сам говорю, доступ к элементам объектной модели документа - это просто класс", то из этого никаким образом не следует, что я не в курсе, что DOM это DOM, а JS - это JS. Я только имею в виду, что в JS могло и не быть поддержки DOM'а. И я, кстати, действительно не знал, что в нем относительно запросто можно манипулировать содержимым узлов, потому что те примеры JS-кода, которые мне попадались ранее, сплошь и рядом оперировали конструкциями вида "document.write('blah-blah-blah')", что на DOM как бы совсем не тянет. И если уж речь зашла о DOM'е, то я, если честно, хотел бы видеть больше поддержки стандарта W3C. Например, мне в одной из функций понадобилось выбрать дочерний элемент DIV'а с неким значением аттрибута id. И что? Хрена с маслом! Почемуто getElementsById() определена только на уровне document. Пришлось как дураку писать статическую функцию, которая принимает элемент в качестве параметра и рекурсивно перебирает все childNodes в поисках потомка с заданным id. Кстати, если они такие последователи DOM'a, то где у них класс типа Element? Не знаю как где, а в документации MSDN по DHTML такого класса нет. Так штаааа. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| Sardar |
|
||||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Не хотел тебя задеть, просто увидел поток критики от человека не совсем понимающего предмет спора, хотел поубавить спесь. Извиняюсь если чем то задел.
Да, это всё скрипты прошлого поколения, которые никак не умрут. document.write конструкция вообще не валдна в XHTML.
А ты читал стандарт DOM или просто на угад? Выбрать элемент с некоторым аттрибутом нельзя средствами DOM, приходиться перебирать всё. Естественно в мире XML пользуемся XPath, но почему то тиолстолобики из Opera|Mozilla|IE никак не хотят прикрутить его к HTML документу. XML документы имеют XPath. Для ИЕ ещё ясно, у него XML отдельным ActiveX, т.е. это вообще не фича ИЕ, но у остальных XML|HTML одним движком обрабатываються... впрочем я точно не знаю.
Не надо приводить ИЕ как лучшую платформу поддерживающюю W3C стандарты на все 100%, скорее рак на горе свистнет
Повторюсь: не запускай код в ИЕ, он по моему единственный кто не пускает к прототипам элементов, т.е. движёк у него ещё со времён царя гороха. Каждый ищет по себе, кто то тянеться к новому, кто то зацикливаеться на старом, кто то не ищет ничего и не врубаеться в идеологию JS, от последних обычно одна критика. Совет: прежде чем утверждать и критиковать, постарайся хотя бы на 50% изучить материал. Тогда интересно спорить, я даже когда то приводил гипотетические интерфейсы Thread обьектов, с помощью которых можно сделать явную многозадачность. А втирать азы... это на любителя и удовольствия не доставляет. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||||
|
|||||||||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Все очень хорошо. Одна просьба: из уважения к Wolf1994, задавшему исходный вопрос, и учитывая, что обсуждение немного отклонилось в сторону (да, отчасти по моей вине, хоть я и не специально), прошу со всеми новыми комментариями относительно моих постов обращаться в специально открытый для этой цели топик: Вопросы к опытным Javascript программистам.
Спасибо. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |