Статьи
- Числа прописью с рублями, минутами и метрами
Эта тема беспокоит меня давно, с тех пор, как в нашей газете научились отправлять электронные счета электронной почтой. В счёте ведь надо было как-то превращать цифры с слова (типа «Два миллиона сто ... 15.11.11
- Календарь javascript (datepicker)
В сети полно чудовищных скриптов для наглядного выбора даты с помощью указателя мыши. Эти скрипты не могут быть не чудовищными по определению, так как созданы для позорной задачи: облегчить жизнь ... 15.11.11
- Что из чего следует в PHP-фреймворке «Friends»
«Friends» - рабочее название маленького PHP-фреймворка (16 K кода, вместе с CSS, но пока без javascript), находящегося в сомнительных отношениях с mvc, но бодро работающего.
В предыдущей статье мы ... 29.10.11 Комментарии (1)
- PHP фреймворк, анти-MVC, без ООП
С самого начала изучения MVC мне не понравилось слово «модель». И не зря. На громадном количестве сайтов это понятие действительно не применимо. Там есть Данные, есть какое-никакое их Отображение. ... 17.10.11 Комментарии (6)
- Идеальная функция setCookie
Сравнение двух интересных библиотек (http://microbasejs.ru/, http://github.com/Kolyaj/CrossJS) привело меня к озарению и созданию совершенно особой, доселе невиданной функции по установке куки (с ... 03.10.11 Комментарии (1)
- Отображение настроек для javascript сортировки
Очень сложная оказалась задача – дать пользователю возможность настраивать колонки таблицы не по Ctrl+click, а наглядно, как в оконных приложениях, выбором с помощью мышки. Весь моск вывернула ... 29.09.11
- Что такое Контроллер mvc в вебе?
MVC – Модель, Контроллер, Вью (Представление). Вместо мутного «Модель» используем «Данные». И попытаемся определить откуда у всего этого ноги растут.
Данные – это что-то, что хранится в компьютере; ... 25.09.11
- javascript сортировщики, сравнение алгоритмов
Всякое сравнение хромает в пользу того, кто сравнивает.
Попробуйте поискать в сети страницы по фразам «Сортировка HTML таблиц», «javascript сортировка», «table sorter»... Можно найти немало решений, ... 15.09.11
- unobtrusive top.mail.ru
Лет 5-6 назад среди веб-разработчиков распространилась мода на «unobtrusive javascript» – «ненавязчивый» javascript, который внедряется в тело HTML страницы только в виде ссылок на файлы js (а не в ... 15.09.11
- Простой сортировщик HTML таблиц, версия 0.03
Simple Table Sorter v 0.03
Первый Простой сортировщик HTML таблиц (версия 0), упоминаемый на этом сайте, был придуман далеко не первым по времени, а примерно через год работы над концепцией. Была ... 09.09.11
- Подсветка строк, столбцов и значений в HTML таблице
Это следующая версия скрипта Big Table Sorter – 1.01.
Почти год назад в статье http://ir2.ru/tabsort1.aspx мы сформулировали концепцию полнофункционального сортировщика HTML таблиц. Казалось, что ... 06.09.11
- Отложенная загрузка javascript
Когда в очередной раз пользователи начали жаловаться на «странную» работу некоторых функций корпоративного сайта, мне пришлось вникнуть в проблему. Она оказалась очень простой: 1) после загрузки ... 16.07.11
- Кэширование промежуточных результатов в веб-программировании
Кэширование в php-скрипте
Существует такой шаблон проектирования (или приём программирования) «Экстрактор»: создаваемая конструкция не знает о существовании или отсутствии элементов, она просто ... 28.06.11
- javascript и php: синхронизация сущностей
Вот форма на сайте ("вот дом, который построил Джек"). Вот кнопка submit, при щелчке по которой запускается функция валидации формы. Вроде всё, как всегда, стандартный пример. Но, если подумать, ... 24.06.11
- Скругление углов CSS, JavaScript
Кажется, на эту тему трудно написать что-то новое. Точнее, трудно изобрести новый метод скругления углов. А взглянуть на проблему под другим углом всегда можно. Мы попробуем доказать неизбежность и ... 04.06.11
- Javascript и логика представления (design pattern «JS-словари»)
В статье о генерации HTML формы для wysiwyg редактора мы привели пример небольшой автоматизации в программировании – создание формы на основе структуры mysql-таблицы и последующая обработка данных ... 29.05.11
- Структура WYSIWYG-редактора сайта
WYSIWYG – это наглядный редактор (прежде всего, для текста): вы выделяете фрагмент, нажимаете в управляющей панели кнопку B – и фрагмент становится жирным. Так можно делать, например, в Ворде, или в ... 07.05.11
- Подсветка картинки при наведении мыши
Хорошей практикой веб-строительства является создание таких гиперссылок (и других активных элементов), которые изменяются при наведении мыши. У гиперссылок, по спецификации W3C, даже существует для ... 02.05.11
- Визуальные редакторы: для кого они?
В давние-давние годы, когда в Иркутске только начали появляться компьютеры и про Интернет ещё никто ничего не слышал, для вёрстки использовали программу Xerox Ventura Publisher (Вентура). Вёрстка, ... 27.03.11
- Веб/2: сайты нового поколения
ПредысторияЧтобы дать определение новому понятию «Полувеб», надо вспомнить сначала, что такое «веб 2.0». О нём много пишут; как всегда, лучше всего в Википедии. С содержательной стороны – это ... 28.12.10 Комментарии (2)
- Как измерить скорость работы Javascript?
На самом деле хочется, конечно, знать общую скорость (точнее, время) вывода на экран какой-либо информации. В нашем случае – информации, получаемой с помощью браузеров (то есть скорость вывода ... 21.12.10 Комментарии (2)
- Функция для работы с className в javascript
Изменение атрибута class у HTML-элементов является основой, базой для управления содержимым страницы с помощью DHTML. Любое действие по оформлению проще всего производить, именно изменяя динамически ... 18.12.10
- Сортировщик HTML таблиц, версия 1
В предыдущей статье мы попытались определить минимально необходимые свойства сортировщика таблиц. Вряд ли произведённые определения можно сильно оспорить; другие минималистские сортировщики в общем с ... 11.12.10 Комментарии (1)
- Сортировщик HTML таблиц: концепция и «нулевой цикл»
У кого sorter тинее?
В процессе работы над сортировщиком (как и над любой другой программой) приходится многократно обращаться к разным вариантам, существующим в виде открытых решений в Сети. И ... 09.12.10 Комментарии (27)
- Как с очень высокой скоростью найти слово в большой таблице?
В предыдущей статье мы показали, как два уровня (или два приёма) javascript-кэширования могут увеличить скорость поиска по списку из 400 элементов в десятки раз. Там были важны три ... 06.12.10 Комментарии (2)
- Как в большом списке найти слово с очень высокой скоростью?
Простой список. Прямой алгоритм
Начнём с нашего любимого примера – простого (в одну колонку) списка рубрик из справочника предприятий vostsibspravka.ru: listru1.htm. Наиболее очевидный алгоритм ... 06.12.10
- HTML база данных лучше, чем Excel
Второй вопрос после "как сортировать и фильтровать данные в HTML-таблице?" обычно возникает у критиков: "А нафига?" Скептицизм здесь уместен: пользователи обычно получают HTML-страницы с веб-сервера, ... 05.12.10 Комментарии (1)
- Javascript база данных
Есть такой анекдот (или притча) о злой тётке, которая один раз в жизни пожалела нищенку и подала луковое пёрышко; а потом в аду черти тётку топили, а нищенка протянула ей то самое луковое пёрышко и ... 28.10.10
- Сортировщик HTML-таблиц, версия 1.3
Статья о сортировке HTML-таблиц была написана год назад. Так получилось, что описываемая технология заинтересовала некоторых начинающих программистов, и они стали задавать вопросы и высказывать ... 30.09.10 Комментарии (3)
- Проверка условий в Javascript
Веб-программист постоянно вынужден что-то проверять: правую кнопку мыши нажал пользователь или левую, заполнено ли в форме поле «Поиск», есть ли на странице элемент с id = "console"... Иногда это ... 25.09.10
- Скрыть – показать HTML элементы с помощью Javascript
Специалист – человек, который, избегая мелких ошибок, неуклонно движется к глобальному заблуждению. Закон программирования Мэрфи, ст. 17
Специалист подобен флюсу: полнота его одностороння. Козьма ... 11.09.10
- Таймеры в Javascript (setInterval, setTimeout)
В программировании на скриптовых языках периодически возникает необходимость создать паузу – приостановить выполнение программы на некоторое время, а потом продолжить работу. Например, в сценариях ... 26.08.10 Комментарии (10)
- Javascript фильтрация данных
Сортировать HTML-таблицу мы уже научились. Вторая после сортировки задача базы данных – выборка строк из таблицы по определённому критерию. Например, чтобы поле город заканчивалось на -тск. ... 24.08.10 Комментарии (13)
- Javascript: вопросы и ответы
Все примеры javascript для данной страницы находятся в файле o3.js. Для правильной работы скриптов необходима также библиотека ir2.js.
Как запомнить options, выбранный в элементе select?
... 18.07.10
- Javascript: часто задаваемые вопросы
Как удалить пробелы в Javascript с учётом ?
Речь, понятно, идёт не о всех пробелах подряд, а о лишних пробелах справа и слева, т.е. об аналоге функции trim (удаляющей справа и слева строки ... 27.02.10 Комментарии (3)
- Редактирование таблицы MySQL: Javascript интерфейс
В предыдущей статье мы рассмотрели предельно простой способ доступа к базе данных MySQL (редактирование таблицы без перезагрузки HTML страницы). Отправка данных на сервер производилась через ... 21.02.10 Комментарии (7)
- Редактирование таблицы MySQL в браузере
Заголовок, конечно, пугающий, но там (здесь), в общем, ничего необычного: редактирование таблицы MySQL происходит всё-таки с помощью серверного скрипта PHP. К тому же пользователи вообще очень часто ... 24.01.10 Комментарии (8)
- 10 лучших функций Javascript
Функция удаления со страницы ссылок «на себя» stripSelfHref()
DOM-инспектор dom-javascript.js
Функция scriptRequest() (фоновые http-запросы)
Функция записи куки setCookie()
... 16.01.10 Комментарии (1)
- Сортировка таблицы средствами JavaScript - DOM
Вопрос когда-то с неизбежностью возникает перед любым добросовестным веб-мастером: зачем перегружать HTML страницу при сортировке таблицы? Нельзя ли перегруппировать HTML элементы таблицы прямо в ... 09.01.10 Комментарии (49)
- DHTML: условная разметка для HTML кода
Стили набора и форматирования
Как авторы обычно оформляют текст при наборе? Например, когда надо какое-то слово сделать курсивным? Результат можно получить разными способами:
Нажать мышкой в ... 05.01.10
- DHTML: защита форума
Как защитить фор(ум|му) от спама?
Форма – это дыра, через которую сообщения пользователя отправляются на сервер. Точнее, несколько дыр: текст сообщения, автор, e-mail...
Форма 1.
Автор: ... 02.01.10 Комментарии (3)
- DHTML: хранение настроек пользователя
Для чего нужен Dynamic HTML
Убрать
Развернуть и запомнить
... 30.12.09
- DHTML: проверка формы
В предыдущей статье
http://ir2.ru/dhtml.aspx мы сформулировали ряд причин, по которым
бывает необходимо изменять HTML страницу после её открытия в браузере.
Повторяем здесь список этих причин:
... 26.12.09 Комментарии (2)
- DHTML
Нечасто задаваемые вопросы
Изменение текста (и оформления) страницы после её открытия в браузере иногда называют DHTML – Dynamic HTML. Справочник по DHTML найти в сети почти невозможно. ... 24.12.09 Комментарии (2)
- JavaScript
О популярности JavaScript в Википедии слагают легенды. Специалисты объясняют эту популярность в основном простотой языка и широкой поддержкой в прикладных программах. Такой взгляд кажется нам немного ... 13.12.09 Комментарии (1)
- HTML таблицы
Таблица (элемент table) является, пожалуй, самой загадочной и сложной конструкцией языка HTML. Хотя собственно HTML тут ни при чём, таблица сложна по самой своей сути, по противоречивой логике ... 07.12.09
- Самый быстрый браузер
В последние годы интернет-обозреватели не радуют нас разнообразием рекламы: «С новой версией NN ваш веб-сёрфинг станет ещё безопаснее!» – наиболее типичный призыв производителей. А ... 26.10.09 Комментарии (3)
Добавить статью:
Правила оформления:
- HTML-тэги не работают (выводятся на экран в виде кода)
- Абзац - два раза Enter (абзацы отделяются пустыми строками)
- __курсив для группы__, **жирный для группы** (2 знака подчёркивания или 2 звёздочки перед первым словом группы и после последнего);
| Практика JavaScript и PHPИз всех языков веб-программирования важнейшим для нас является JavaScript. Кроме тех случаев, когда надо записывать данные на сервер. (Говорят, правда, что JavaScript бывает и для сервера, но мы будем исходить из сегодняшней реальности, когда синонимом понятия «серверный язык» de facto является PHP). Ничего ведь не изменилось. Как и раньше, люди в среднем больше читают, чем пишут. Только раньше они читали газеты и книги, а сейчас – тексты на веб-страницах. А JavaScript (точнее, технология DHTML) как раз и служит для более удобного представления информации читателям (пользователям).
Эволюция ресурса
В начале этот домен (ir2.ru) был заведён для поиска и обнародования чего-либо интересного на иркутских сайтах (отсюда и название ИР2 – «ИРкутский ИнтеРнет»). Но нам это занятие быстро надоело: нельзя объять необъятное, да ещё Яндекс задавил своим фильтром каталог сайтов irweb.ir2.ru. Тогда мы решили поизучать всякие веб-технологии, а в процессе изучения записывать самые интересные находки. Сначала на сайте dn.ir2.ru – в основном о серверном программировании (PHP, MySQL). Но это тоже быстро надоело (в самом деле, ну что интересного можно сейчас найти в PHP?). И тогда мы (чтобы с чего-то начать) достали из загашников свой старенький учебник HTML и занялись наконец-то настоящим делом – оптимизацией веб-интерфейса.
Потому что клиентская HTML-страница – основа всего. Основа всего Интернета. Сайт может состоять только из HTML-страниц для чтения, которые видит пользователь, но не может состоять только из баз данных и серверных скриптов (которые вообще-то пользователю до лампочки). Бывают, конечно, интернет-магазины или интернет-форумы, когда сайт принципиально невозможен без серверного программирования. Но это особая часть – Интернет для работы или Интернет для учёбы – и она никогда не перекроет Интернет для развлечения. В последнем люди всегда будут больше читать (или смотреть); даже в бездонном болоте социальных сетей, технически построенных по «форумному» типу, наиболее «естественное» состояние пользователя – сидеть и тупо смотреть (на текст или фото).
На самом деле, количество тут, конечно, не особенно что-то решает. Просто страничка, которую видит пользователь, является основой Интернета всегда – в том числе и на форумах. Чтение (восприятие информации) первично, без него невозможен ни один интернет-сервис. А для хорошей подачи информации нужны две простые вещи: соблюдение стандартов W3C и RFC, – и одна сложная: умелое применение DHTML-технологии. То есть страничку нужно делать правильно (стандарты) и искусно (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 лень (или некогда – что, в общем, одно и то же).
Так вот, мы не отвечаем за то, что кто-то подумал, что он может что-то найти здесь о веб-костылях, но ничего не нашёл. И ещё, например, мы не участвуем в соревнованиях на самый лучший скрипт в мире. Зато с полной ответственностью утверждаем, что все идеи, описываемые здесь, взяты из практики, все примеры – рабочие и обязательно учитывают работу всех элементов веб-технологии – от сервера баз данных до финишного клиента (браузера).
D.M., admin Ваш беспристрастный свидетель, автомобильные видеорегистраторыы обзор. Запись ведется блоками. 221. FRY "Но это тоже быстро надоело (в самом деле, ну что интересного можно сейчас найти в PHP?)"
– фраза полного идиота!!! 29.03.2011 17:29:19
222. fff "На этом сайте не используются (ни в работе, ни в обсуждениях) так называемые фреймворки типа jQuery. Хотя они могут быть достаточно интересны с научной точки зрения, но в работе «правильного» веб-мастера являются скорее костылями, чем микроскопом." – это вообще на уровне дибилизма! 29.03.2011 17:31:43
223. D.M., admin FRY, спасибо за отзыв! 02.04.2011 08:12:14
234. Рустик fff если для Вас библиотека jQuery является костылями, используйте сразу Ассемблер при написании сценариев 13.06.2011 20:46:16
235. D.M., admin Рустик, а как потом "сценарий" на ассемблере передать для интерпретации браузеру? 15.06.2011 10:04:29
267. пукпук паукпукпук 07.11.2011 19:59:11
268. ..аныйстыд мы здесь тоже так считаем, приходите к нам работать. http://google.com 07.11.2011 20:00:06
269. fewf <script>alert('trollface')</script>пцукпук 07.11.2011 20:00:58
270. fweif;'вова fweif;'вова 07.11.2011 20:02:59
272. D.M., admin Пока сайт dn.ir2.ru находится в процессе переезда на другой домен, будем валить сюда всё в кучу: и javascript, и PHP. 15.11.2011 09:49:13
283. Erika Согласна с 221. Благодаря PHP, MySQL. Perl, (x)HTML, (d)HTML, JavaScript я питаюсь нормально, одеваюсь, плачу за учебу сама. Полтора месяца назад преобрела офигительный ноут, а сейчас собираюсь в Москву за таким дескопом который по скорости и мощьности не уступает Древне Гресеским богам. Автор, с твоими понятиями сидеть тебе на венике котелком до глубокой, дряхлой старости и грызть черствые сухари 20.01.2012 04:04:41
Добавить комментарий:
|