Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Устаревшие термины и технологии в Javascript.


 javascript.aho.ru Javascript в браузерах: разработка, документация, примеры. Выпуск # 7, 2006-05-31
краткое содержание

Устаревшие термины и технологии в Javascript.

(1) Умершие понятия из старых учебников и скриптов, которые вводят в заблуждение начинающих. (2) Скриптовая автоматизация выбора опций в мультиселект-списке. При нажатии на название группы выделяется или снимается выделение у всей группы. Список из 2 и более уровней.
Существует дней: 41
Автор: 12345c
Другие выпуски:
Рассылка 'Упражнения по яванскому письму. Javascript.'
 
Статья
31.05.06

Не думать о белой обезьяне.

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

Перечислим имена этих нечаянных врагов молодых неопытных мореходов. Представьте себе, открывает человек книгу с многообещающим названием: например, "Javascript для мага", читает учёные постановления, и на полном серьёзе проглатывает знания об особенностях работы Netscape Navigator 2.0, 3.0 и Netscape Communicator 4.0. Но ладно, это совсем уж крайний случай полного неведения читателя. Но есть более специальные и потому более коварные "покойники" (фантомы), поджидающие читателя-одиночку на тропе познания скриптов. Об них-то мы поговорим, сорвав бледнеющую маску, припудренную завесой молчания об их настоящем статусе. Копировщики десятков наименований учебников не удосуживаются написать во вступлении: об этом и этом не читайте, устарело. Восполним пробел одной короткой статьёй.

Так кто же эти персонажи, на маскараде мертвецов? Одним штрихом мы показали, откуда их происхождение. Да, из некогда популярного и прогрессивного браузера, который прекратил своё существование из-за прекращения поддержки не только старых версий, но и ряда идей. При этом большинство других идей живёт в других браузерах, и некогда мастерски написанные книги не уходят в утиль. Всё же, надо бы, чтобы они были дополнены новыми идеями, чтобы читатель сразу заимел представление о важных новых частях браузеров и языка (HTML, CSS, Javascript). Новые термины и технологии, не успевшие попасть в учебники, но весьма актуальные, чтобы их знать, будут перечислены в одном из следующих выпусков рассылки в отдельной статье, которая станет, условно говоря, продолжением настоящей.

Термин Описание, происхождение, продукт, в котором использовался
серверный JavaScript Жил и умер в тесной связи с продуктом Netscape Enterprise Server. Все упоминания о нём и примеры работы с ним относятся к временам до 2000 года. Был стратегическим продуктом фирмы Netscape, политика которой заключалась в распространении дешёвых браузеров и дорогих серверов для их поддержки. Серверы поддерживали ряд других уникальных умерших технологий, о которых речь ниже.
Netscape Navigator (2.0, 3.0, 4.0-4.7) Некогда прогрессивный браузер фирмы Netscape, бизнес которой был подорван конкуренцией с бесплатным и быстро развивавшимся браузером Internet Explorer от Microsoft. Ввиду прекращения развития на поддержку всех названных версий и объектов из них (layers, модель событий и другие) следует не обращать внимания.
фирма Netscape Была продана компании AOLв 1999 году . Незадолго до этого сориентировала развитие браузера на сообщество программистов, работающих с открытым исходным кодом и открытыми стандартами. Благодаря открыванию кода Netscape Navigator 4 работы над браузером и его потомками (Mozilla, K-Meleon) продолжились, c некоторыми перерывами. Тем не менее, существуют версии 6,7,8, основанные на открытых стандартах и имеющие довольно сильное отличие от идеологии Netscape 4.0-4.7. Они продолжают развиваться, хотя менее успешно, чем потомок Mozilla, браузер Firefox. Общее название "движка" этих браузеров - Gecko, он получил признание среди многочисленных пользователей и смог продолжить развитие в качестве бесплатно распространяемых версий браузеров.
JavaScript 1.0, 1.1, 1.2 Версии языка JavaScript, поддерживаемые последовательно в Netscape Navigator 2.0, 3.0, 4.0. Последняя версия поддерживается также в Internet Explorer с версии 4.0. Упоминание версии в атрибуте language (<script language=JavaScript1.2>) имеет право на существование с любым индексом и означает, что скрипт будет исполняться, начиная с указанной версии браузера. Соответственно, упоминания индексов 1.2 и ниже в наши дни не имеют смысла. Достаточно просто писать language=JavaScript, но этот язык в скриптах браузера и без того установлен по умолчанию, и опять-таки, упоминание в данном виде не имеет смысла. Последующие индексы указывают на соответствие синтаксиса скрипта на соответствие со стандартом ядра языка ECMA-262 различных редакций, и их упоминание влияет на интерпретацию скрипта. JavaScript 1.5 поддерживается в Netscape 6.0, Mozilla1.0.
captureEvents,
releaseEvents,
Event.KEYPRESS, Event.CLICK (указанным размером букв)
Такие термины указывают, что применяется код для модели событий Netscape 4, умерших вместе с ним. Сразу делаем вывод, что код (или рекомендации) неактуальны, их следует стаарательно обойти в использовании, лучше удалить из скрипта. Говорит о том, что скрипт, вероятно, не проверен на работу с новыми браузерами (группы Gecko и Оперой старше 4-5 версий, которые только и актуальны).
which, modifiers кнопка мыши или клавиатуры в событии, поддерживаемом до версии Netscape 4 .
onDragDrop событие, поддерживаемое только в версии Netscape 4 (имеется в виду только JavaScript).
unwatch(), watch(), untaint(), taint() Функции ядра языка, прекратившие существование в Netscape 3, 4 .
event.data Использовалось в NN4 для события dragDrop
Event (с большой буквы) Объект, существовавший только в NN4. Соответственно, все его уникальные свойства не существуют. Хотя, программист в другом браузере может объявить точно такую же переменную.
layer, layers, ilayer Наиболее типичный признак устарелости скрипта. Слои (объекты браузера) layer использовались вплоть до NN4 и в дальнейшем не были поддержаны в стандартах, так как Microsoft предложила более удобную концепцию слоёв, поддерживаемую, начиная с IE4 (свойство position:absolute или relative для любого объекта HTML).
LiveWire Database Service Сервис для работы с базами данных через Netscape Enterprise Server. См. первое примечание в данной таблице.
LiveConnect Технология взаимодействия Javascript с другими объектами в веб-странице для NN3-4. Альтернатива в IE - ActiveX. Тем не менее, технология обмена данными с Джава-апплетами продолжает жить под этим же именем.
Есть и некоторые другие слова-признаки, по которым можно опознать "старость" скрипта или учебника. Но перечисленных выше в основном достаточно, чтобы быстро фильтровать устаревшую информацию. Обращайте также внимание на способы определения версии браузеров в скрипте, что можно делать при некотором навыке чтения скриптов. Но это требует уже некоторой квалификации и просто опыта чтения примеров различных (чужих) скриптов.

Отдельно следует упомянуть об Опере. Она в версиях 3-4, выпущенных в районе 2000 года, перенимала модель событий Netscape 4. В последующих версиях пошла переориентация на поддержку и похожесть реакций на IE5+. При этом одновременно поддерживаются и стандарты W3C (на сайте opera.com можно увидеть историю поддержек различных свойств в версиях). Тем не менее, она несколько отстаёт в развитии поддержки актуальных веб-приложений, что должно во многом решиться в версии 9.0. Отзывы разработчиков о версиях до 7-й заключаются в том ,что для тех версий Оперы очень трудно было поддержать кроссбраузерную совместимость, она быстро менялась от версии к версии. Поэтому для разработки новых скриптов поддержку Оперы до версии 7.0 или 7.23 (в ней добавилось много современных свойств) можно игнорировать.

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

Есть и в IE свойство (коллекция), которую можно прочить в "покойники", но оно упорно продолжает жить и даже признаётся в Firefox, Опере. Это всем известное document.all . При этом оно не поддержано в стандартах, о чём Firefox неизменно выводит замечания.

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

Уровень: для начинающих
-v---

Статья.
31.05.06

Многоуровневый мультиселект. 1.

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

Некоторое время назад на одном форуме программистов я поднял тему по названному вопросу. Иногда приходится делать большой список в теге <select> и разбивать его на несколько подуровней. И на этом самом форуме есть такой список из очень разветвлённых тем и подтем форума. Так и сформулировалась задача. В общем-то, внимательно прочитав обсуждение темы, которуое вели всего 2 человека, можно получить все ответы на вопросы: и 3 примера программ автоматического выделения группы опций, и обсуждение того, как практически реализовывать, и насколько это надо.

Упомяну о том, что есть в HTML тег <optgroup label="Раздел ХХ">, который пишут внутри select и получают двухуровневый список, правда, безо всякой автоматизации. В теме поднята задача, при которой использовать данный тег было невозможно, поэтому в получении решения пошли другим путём - выделять уровни и вложенность, как обычно, особыми символами: точками, дефисами. Получили пример скрипта и усовершенствовали его. Я лично завершающей доводки скрипта не делал. Кто желает, может сейчас самостоятельно разобраться с его работой или написать свою версию в форум. В следующем же выпуске я займусь написанием достаточно изящного и компактного скрипта, выполняющего указанные функции.

  • При клике на названии группы строк выделяется или снимается выделение группы строк тега <select>.
  • При клике с удержанием клавиши Ctrl или Shift назначается или снимается выделение опций в полном соответствии со стандартными реакциями списка (т.е. чтобы скрипт не мешал производить стандартные действия по выделению или снятию его).

 

Уровень: для программистов
-v---

Примечание.
31.05.06

А теперь поскорее опубликуем выпуск, который и без того задержался. Следующий выпуск ожидайте в ближайшие 2-3 дня, для соблюдения правила "1 выпуск в неделю".

 
-v---

 javascript.aho.ru , © I.Svetlov, 2005-2006 
Текущая очерёдность плана статей (подписчики могут корректировать через голосование).
8. Ключевые слова новых технологий, которые нужно знать разработчику веб-страниц.
2. Автоматический выбор группы опций в мультиселект-списке, многоуровневое меню в <select>,
3. Как писать тексты с доступом через JS без экранирования специальных символов (&lt; и другие).
4. select и list - в них есть много общего. Как и с меню навигации. Эмулятор селекта.
5. Древовидное меню, подход к данным, отделение данных от представления.
6. Многонедельный календарь со ссылками. (По списку строится календарь.)

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

 


В избранное