Из всех языков веб-программирования важнейшим для нас является JavaScript. Кроме тех случаев, когда надо записывать данные на сервер. (Говорят, правда, что JavaScript бывает и для сервера, но мы будем исходить из сегодняшней реальности, когда синонимом понятия «серверный язык» de facto является PHP). Ничего ведь не изменилось. Как и раньше, люди в среднем больше читают, чем пишут. Только раньше они читали газеты и книги, а сейчас – тексты на веб-страницах. А JavaScript (точнее, технология DHTML) как раз и служит для более удобного представления информации читателям (пользователям).
Со стандартами дело обстоит настолько плохо, что говорить о них совершенно неинтересно (а главное, бессмысленно). Стандарты не соблюдает практически никто. DHTML, наоборот, используют все (только не всегда об этом знают). Поэтому тут есть что обсуждать (осуждать неправых и восхищаться гениальными находками).
Так сложилось, что современные веб-разработчики вместо слова DHTML обычно используют JavaScript. Поэтому нам пришлось в названии сайта упомянуть именно JavaScript, а не DHTML (иначе мало кто поймёт, о чём речь). Но всё же попытаемся восстановить справедливость – дать определение DHTML.
В сети, на первых позициях поиска, можно встретить довольно корявые определения: «Динамический язык гипертекстовой разметки», «язык построения динамического гипертекста»... Википедия тоже выдаёт нечто коряво-осторожное: «способ создания интерактивного веб-сайта». (Да. Спасибо ещё, что HTML не «способ создания статичного веб-сайта»).
А ведь самое очевидное родовое слово тут «технология». Ну, и встречается оно в определении DHTML чаще всего. Даже бывает во множественном числе: «набор технологий, работающих на стороне клиента и призванных преодолеть статичность традиционных Веб-страниц». Да, и вот это призвание – преодолевать статичность и бороться за динамику – тоже чаще всего связывают с понятием Dynamic HTML.
Мы на странице dhtml.aspx используем такой упрощённый вариант: «Изменение текста и оформления страницы после её открытия в браузере». То есть сервер, с которого получена страница, уже в этом не участвует. Сервер может вообще отключиться, а страница на стороне клиента будет продолжать свою вполне независимую, долгую и прекрасную жизнь.
Что касается предназначения «сделать HTML страницу динамической», то, даже при самом минимальном количестве мозгов, у разработчика немедленно должен возникнуть вопрос: «А нахрена?» Динамика может быть самоцелью только для демонстрации таланта веб-мастера с отсутствием необходимого мозгового минимума: нажимаешь на кнопочку – что-то происходит; а зачем – вопрос совсем уже лишний.
Логика правильной веб-разработки требует не демонстрации возможностей какой-либо технологии, а создания удобств для пользователя. Жизненно важных удобств. Пример. Изначально, в «голом» тексте, такое удобство, как сноски (примечания), находится «во дворе» – в самом конце страницы: чтобы им воспользоваться, нужно «прокрутить» страницу до конца, а потом прокручивать её обратно, напряжённым взглядом отыскивая место остановки.
Гипертекст позволяет пристроить это удобство максимально близко к дому: нажимая на гиперссылки якорей, пользователь может перемещаться по странице одним щелчком, довольно точно попадая с текста сноски обратно к ссылке на сноску. Не абсолютно точно – страница всё равно может смещаться до половины своего размера.
Технология DHTML позволяет отображать тексты сносок вообще не отходя от ссылок. То есть как раз абсолютно точно (удобство в пятиэтажной хрущёвке). Пример есть в нашем старом учебнике на странице ir2.ru/html/omne/js3/wattsa.htm.
Таким образом, наилучшим на сегодняшний день мы считаем следующее определение:
DHTML (Dynamic HTML) –
технология изменения веб-страницы на стороне клиента, улучшающая восприятие информации пользователем. Основана на манипуляциях DOM и CSS объектами с помощью JavaScript. Наиболее частые задачи: 1) организация информации на странице с помощью скрытия-отображения текста; 2) проверка информации, вводимой пользователем; 3) хранение настроек (неавторизованного) пользователя.
Есть, правда, ещё одна типичная задача организации информации – получить фрагмент страницы без перезагрузки, но она решается не исключительно одним DHTML, а совместно с серверными скриптами. В веб всегда так – одно цепляется за другое, и попробуй найди концы.
Развитие сайтов движется по спирали MySQL – PHP – JavaScript (DHTML). Описание этого развития тоже. Что и отражается в датах публикации статей на dn.ir2.ru (MySQL, PHP) и на ir2.ru (JavaScript – DHTML). Понимание DHTML per se так же может иметь несколько уровней – что сильно усложняет ситуацию в практике сайтостроения и упрощает поиск предмета разговора.
Пример. В HTML учебнике, в главе Примечания (сноски) в книге описаны понятные, совершенно очевидные и правильные методы работы со сносками. Но для подобных задач существуют методы менее очевидные, зато гораздо более эффективные (и даже красивые). Что и будет в ближайшее время описано в статье Скрыть – показать элементы.
На этом сайте не используются (ни в работе, ни в обсуждениях) так называемые фреймворки типа jQuery. Хотя они могут быть достаточно интересны с научной точки зрения, но в работе «правильного» веб-мастера являются скорее костылями, чем микроскопом. Ну, например, вы хороший PHP-программист, и хотите делать сайты полностью самостоятельно, но серьёзно изучать JavaScript лень (или некогда – что, в общем, одно и то же).
Так вот, мы не отвечаем за то, что кто-то подумал, что он может что-то найти здесь о веб-костылях, но ничего не нашёл. И ещё, например, мы не участвуем в соревнованиях на самый лучший скрипт в мире. Зато с полной ответственностью утверждаем, что все идеи, описываемые здесь, взяты из практики, все примеры – рабочие и обязательно учитывают работу всех элементов веб-технологии – от сервера баз данных до финишного клиента (браузера).
Здравствуйте. Прикручиваю сейчас к Бигтаблсортеру возможность редактирования, есть одна проблема. При добавлении новой строки не получается добавить соответствующую этой строке новую ячейку к сортировочному массиву. То есть чтобы введённые данные сразу сортировались. Устал разбирать код, закручено для моего уровня сложно. Помогите мне пожалуйста.
Здравствуйте. Прикручиваю сейчас к Бигтаблсортеру возможность редактирования, есть одна проблема. При добавлении новой строки не получается добавить соответствующую этой строке новую ячейку к сортировочному массиву. То есть чтобы введённые данные сразу сортировались. Устал разбирать код, закручено для моего уровня сложно. Помогите мне пожалуйста.
Тратить жизнь на jQuery – действительно не рационально. Т.к. есть еще океан более важных технологий.
Добрый день, не могу удержаться от комментария :) Не сайт, а просто песня. Наконец-то нашлось то что искалось !!! Спасибо огромное!!! Так много всего полезного.
Люди разбираются как работать с готовыми библиотеками, но не знают как написать простой код для своих задач, который будет фотографии листать. В итоге получаем сайты, на которых немаленький файл с jQ грузиться для элементарных вещей.
По мне, так проще разобраться как на JS тот или иной функционал, чем читать справку по использованию jQuery и разбираться в чужом коде. jQuery и прочие библиотеки отучают людей писать самостоятельно элементарные вещи. просто.
Спасибо за хорошее описание и разбор примеров, приведённых на сайте. Соглашусь, что jQuery выглядит монстром, когда нужно решить простые задачи: сортировка таблицы, создание фотогалереи, сносок и прочих простых вещей для удобства посетителя. Такие вещи можно решить самостоятельно написанным кодом, что не надо приписывать к "изобретанию велосипеда". Каждый сам решает, пользоваться чужим кодом или своим.
Пока сайт dn.ir2.ru находится в процессе переезда на другой домен, будем валить сюда всё в кучу: и javascript, и PHP.
Рустик, а как потом "сценарий" на ассемблере передать для интерпретации браузеру?
fff если для Вас библиотека jQuery является костылями, используйте сразу Ассемблер при написании сценариев
"На этом сайте не используются (ни в работе, ни в обсуждениях) так называемые фреймворки типа jQuery. Хотя они могут быть достаточно интересны с научной точки зрения, но в работе «правильного» веб-мастера являются скорее костылями, чем микроскопом." – это вообще на уровне дибилизма!
"Но это тоже быстро надоело (в самом деле, ну что интересного можно сейчас найти в PHP?)" – фраза полного идиота!!!
FRY, спасибо за отзыв!
Спасибо, что протестировали новый сервис на сайте!