Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> насколько можно полагаться на JS? теория... 
:(
    Опции темы
Wolf1994
Дата 21.10.2005, 18:06 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



Насколько можно доверять JS управление своим сайтом? Бытует мнение, что лучше его не использовать вообще, если использовать, то дублировать "чистым" HTML и, ни в коем случае, не доверять ему важные функции, без которых просмотр сайта не возможен... Спрашиваю, так как сам являюсь "жертвой" приверженности JS. Прошу прощения, если задал слишком глупый вопрос, но хотелось бы знать как к этим вопросам относятся профессионалы...
PM MAIL WWW   Вверх
Bastet
Дата 21.10.2005, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 26.9.2005
Где: Тильзит

Репутация: нет
Всего: 6



С точки зрения юзабилити сайт должен оставаться доступным даже с отключенным js. Соответственно, обязательно должен использоваться тег <noscript>.
Но, думаю, на практике трудно встретить на просторах сети сайт с отключенным js, еще труднее - его не поддерживающий.
Так что тут только тебе решать: может ли сайт позволить себе потерять несколько потенциальных посетителей или нет.
--------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA
PM MAIL WWW ICQ   Вверх
Stampede
Дата 21.10.2005, 19:00 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 4
Всего: 144



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

Я вот тут последние две недели на работе сижу, втыкаю в JavaScript, в котором раньше был вообще ни уха ни рыла. Впечатления примерно такие: да, это очень клево, что есть такая вешь как объектная модель документа, посредством которой можно доступиться и реализовать практически любой динамический эффект. Но! Цена, которую ты платишь за возможность крутых наворотов - твое время и нервы - слишком высока. Просто неоправданно высока.

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

И потихоньку тебя начинать точить неотступная мысль: "А нахера?". И ты понимаешь, что возразить-то нечего. Действительно, нахера козе баян?

То есть я понимаю, есть сайты, где JavaScript - это соль его содержимого. Ну там, какой-нибудь Морской Бой онлайн. Или крестики-нолики. Но если сайт информационный, то может лучше сосредоточиться на контенте?

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

Все сугубо мое имхо smile



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
DemoCode
Дата 21.10.2005, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 3
Всего: 41



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

Это сообщение отредактировал(а) DemoCode - 21.10.2005, 19:06


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Zeroglif
Дата 21.10.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Stampede @ 21.10.2005, 19:00)
Потому что программировать на JS - это примерно как переходить оживленную магистраль с завязанными глазами. Никакого тебе контроля синтаксиса, верификации имен, проверки типов. Дебаггер - отстойный. Документации толковой - кот наплакал.

Интересное сравнение, но я бы сказал иначе - эта оживлённая магистраль мне пофиг, потому как я в режиме бога, вернулся и снова пошёл. Документации полно, всё свежее сразу обсуждается всеми сразу (в общем-то, достаточно только Del.icio.us мониторить и всё), форумы, блоги, поисковые машины по кодам, те же FF-расширения вскрытые скалпелем и т.д. и т.п... Это не сравнится ни с каким осязаемым мануscriptом.

Цитата(Stampede @ 21.10.2005, 19:00)
Скрипты, что в интернете валяются - как будто двенадцатилетним школьником написаны, в понедельник с бодуна левой ногой. А уж как доходит до кросс-браузерной совместимости, тут уж вообще звездец начинается.

Да, этот веб, гад, пока ещё такой, битые ссылки не самоуничтожаются, скрипты 90-х годов не умнеют. Но это не значит, что ничего нового не пишут Море разливанное.

Цитата(Stampede @ 21.10.2005, 19:00)
Короче, я для себя сделал предварительный вывод: никогда не браться за JavaScript, за исключениев случаев, когда (а) функциональность абсолютно необходима, и при этом (б) серверного решения не существует или оно слишком неуклюже или трудоемко.

Я для себя сделал вывод: бандитское обращение с Javascript-ом в прошлом веке как со стороны создателей user-agent-ов, так и со стороны вебмастеров-самоучек подмочило ему репутацию и до сих пор отпугивает неразумных, хотя на самом деле в умелых руках - это конфетка, а не язык. Ням-ням.
PM MAIL WWW   Вверх
Bastet
Дата 21.10.2005, 20:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 26.9.2005
Где: Тильзит

Репутация: нет
Всего: 6



Stampede, не надо ругать js. Он все таки красив и изящен при грамотном использовании... И, как правило, js решает как раз те задачи, которые никак не решить на стороне сервера.

Отсутствие кроссбраузерной совместимости действительно напрягает, особенно прикладников. Поначалу просто бесило... + в сети полно примеров ужасного использования js - типа бегущего текста в строке состояния или скроллинга, живущего своей жизнью...

Согласна с Zeroglif, в умелых руках и на благие цели - язык-конфетка.

--------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA
PM MAIL WWW ICQ   Вверх
Stampede
Дата 21.10.2005, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 4
Всего: 144



Zeroglif, Bastet - согласен, не возражаю. Я же и сам говорю, доступ к элементам объектной модели документа - это просто класс. Я, если честно, и не подозревал о существовании стольких возможностей. Но у меня как у новичка есть вопросы. Чтобы не разводить здесь оффтоп, я завел новую тему. Если не трудно, прошу пройти и поделиться соображениями.

Wolf1994, извини, если отвлек от твоего вопроса smile



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Sardar
Дата 22.10.2005, 01:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Stampede @ 21.10.2005, 18:00)
Документации толковой - кот наплакал.

Это же на сколько нужно не дружить с яндексом и гуглом! smile
Цитата(Stampede @ 21.10.2005, 18:00)
ты понимаешь, что возразить-то нечего. Действительно, нахера козе баян?

Ты не видел XUL, а скоро выйдет и XAML в IE, "странички" будут иметь "обычный програмный" интерфейс. Тогда ты поймёшь что остался позади, а мир движеться. Не смотри на старые морально устаревшие скрипты. Полистай для справки xulplanet.com хотя бы, пощи в вебе слово AJAX.

Забудь что JS юзаеться для анимаций, это делаеться только в учебных целях что бы отработать навыки. JS это мощный скриптовый интерфейс к любому окружению и любой сложной аппаратуре. Если бы в QuickVision (здоровенный такой микроскоп) юзался бы JS а не VBS, то код мой был бы раз в 5-7 меньше, логичней, мощней и проще. Впрочем нужен опыт что бы это понять, не много народу работают не только с PC и не только с императивными языками C/C++/Java/C#
Цитата(DemoCode @ 21.10.2005, 18:06)
Именно из-за отсутствия кроссплатформенной совместимости стараюсь пользоваться им только в случае крайней нужды.

JS кроссплатформенный язык, во всех имплементациях один и тот же код будет исполняться одинакого(в мозилле есть ещё геттеры/сеттеры которых нигде больше нет, но их не рассматриваем). API браузерное разное, это да. НО! W3C уже сколько лет существует и делает стандарты, которые все браузер поддерживают. Если чеовек не хочет читать эти стандарты и по прежнему пишет document.all, document.layers и не юзает style.display с прицелом на очень старые браузеры - то это его личные проблемы. Нет старых браузеров, они умерли, сейчас все поддерживают стандарты W3C, даже браузеры в КПК.

Цитата(Stampede @ 21.10.2005, 20:23)
Я же и сам говорю, доступ к элементам объектной модели документа - это просто класс

Возможно ты будешь удивлён, но W3C DOM это не фича JS, это стандарт для всех языков, DOM он и в африке DOM smile


ИМXО:
в мире JS почти 70% народа не догоняют тонкостей языка, а пишут в стиле приобретённым в C/C++ и подобных языках. Это не плохо, но ограничивает сознание человека. Программист на Python лучше будет писать на JS, хотя синтаксисы разные, но языки ближе по духу. Правда он будет удивлённ странными списками в JS(Array), отсутствием tuples и ещё туевой хучей вещей, которые толстолобики из нетскейпа не знали (а ещё и из ECMA, надо же было им язык стандартиризовать без пересмотра возможностей, а ведь могли и расширить. О try/catch догадались когда уже везде было имплементированно, вот такие "тормознутые" бюрократы в мире JS).

Почти 80% народа не может провести границу между API окружения и JS, что в принципе логично. JS не может существовать сам по себе, это мощный язык для управления существующими обьектами некоторого окружения, будь то браузер или буровая установка.

Почти 90% пользователей не знают что JS используеться не только в браузерах smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Stampede
Дата 22.10.2005, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 4
Всего: 144



Цитата(Sardar @ 22.10.2005, 01:48)
Возможно ты будешь удивлён, но W3C DOM это не фича JS, это стандарт для всех языков, DOM он и в африке DOM



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"
По секрету: выучить английский - реально!
PM WWW   Вверх
Sardar
Дата 22.10.2005, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Stampede @ 22.10.2005, 06:32)
но я тебя очень прошу, не надо пытаться строить из себя умника за мой счет.

Не хотел тебя задеть, просто увидел поток критики от человека не совсем понимающего предмет спора, хотел поубавить спесь. Извиняюсь если чем то задел.

Цитата(Stampede @ 22.10.2005, 06:32)
потому что те примеры JS-кода, которые мне попадались ранее, сплошь и рядом оперировали конструкциями вида "document.write('blah-blah-blah')", что на DOM как бы совсем не тянет.

Да, это всё скрипты прошлого поколения, которые никак не умрут. document.write конструкция вообще не валдна в XHTML.

Цитата(Stampede @ 22.10.2005, 06:32)
если честно, хотел бы видеть больше поддержки стандарта W3C. Например, мне в одной из функций понадобилось выбрать дочерний элемент DIV'а с неким значением аттрибута id. И что? Хрена с маслом! Почемуто getElementsById() определена только на уровне document.

А ты читал стандарт DOM или просто на угад? smile Идентификатор у элемента идеентичен во всём документе, поэтому не логично делать getElementById где либо ещё кроме как Document интерфейса.

Выбрать элемент с некоторым аттрибутом нельзя средствами DOM, приходиться перебирать всё. Естественно в мире XML пользуемся XPath, но почему то тиолстолобики из Opera|Mozilla|IE никак не хотят прикрутить его к HTML документу. XML документы имеют XPath. Для ИЕ ещё ясно, у него XML отдельным ActiveX, т.е. это вообще не фича ИЕ, но у остальных XML|HTML одним движком обрабатываються... впрочем я точно не знаю.

Цитата(Stampede @ 22.10.2005, 06:32)
Кстати, если они такие последователи DOM'a, то где у них класс типа Element? Не знаю как где, а в документации MSDN по DHTML такого класса нет.

Не надо приводить ИЕ как лучшую платформу поддерживающюю W3C стандарты на все 100%, скорее рак на горе свистнет smile Также классов в JS нет, есть конструкторы и прототипы, нечто помощней в мире языка без типов. В мозилле/опере/где угодно напиши:
Код

<div id="test" class="some class"></div>
<script type="text/javascript">
HTMLElement.prototype.alertClass=function() {
 alert(this.className);
}
document.getElementById('test').alertClass();
</script>

Повторюсь: не запускай код в ИЕ, он по моему единственный кто не пускает к прототипам элементов, т.е. движёк у него ещё со времён царя гороха.

Каждый ищет по себе, кто то тянеться к новому, кто то зацикливаеться на старом, кто то не ищет ничего и не врубаеться в идеологию JS, от последних обычно одна критика.
Совет: прежде чем утверждать и критиковать, постарайся хотя бы на 50% изучить материал. Тогда интересно спорить, я даже когда то приводил гипотетические интерфейсы Thread обьектов, с помощью которых можно сделать явную многозадачность. А втирать азы... это на любителя и удовольствия не доставляет.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Stampede
Дата 22.10.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 4
Всего: 144



Все очень хорошо. Одна просьба: из уважения к Wolf1994, задавшему исходный вопрос, и учитывая, что обсуждение немного отклонилось в сторону (да, отчасти по моей вине, хоть я и не специально), прошу со всеми новыми комментариями относительно моих постов обращаться в специально открытый для этой цели топик: Вопросы к опытным Javascript программистам.

Спасибо.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.