Dojo / Утилиты броузера

В этой главе приводится формальное описание вспомогательных функций, которые можно найти в Base. Эти функции были разработаны с целью упростить решение проблем, типичных для языка JavaScript, связанных с несовместимостью броузеров, и поэтому они отличаются высокой переносимостью и были сильно оптимизированы. Независимо от того, будете ли вы использовать чтонибудь еще из инструментального набора, конструкции, представленные в этой главе, заслуживают пристального внимания, потому что они обеспечивают такие удобства, без которых сложно будет обойтись, после того как вы попробуете использовать их. Среди тем, рассматриваемых в этой главе, – манипулирование массивами, клонирование узлов, добавление и удаление классов, а также вычисление размеров отступов и вмещаю щих прямоугольников для узлов DOM.
Статьи раздела 'Утилиты броузера':
Аргументы «функции в виде строк»
Библиотека Base предоставляет возможность передавать функциям forEach, map, filter, every и some сокращенные аргументы «функции в виде строк». Вообще такой подход выглядит проще, чем создание функцийоберток, и особенно удобен в д...
Блочная модель
Блочная модель CSS – это достаточно простая тема, но изза наличия множества несогласованностей в ее реализациях, существующих в Сети, работа с ней быстро превращается в кошмар. Этот короткий раздел лишь немного затрагивает вопрос...
Грубое определение типа
Концепция грубого определения типа, присущая языкам программирования с динамической типизацией, таким как Python и JavaScript, лежит в основе большинства только что представленных функций. Суть грубого определения типа можно выраз...
Добавление узлов
Встроенные методы манипулирования содержимым дерева DOM, такие как appendChild, insertBefore и т. д., вполне справляются со своей работой, но иногда гораздо удобнее иметь более универсальное средство размещения узлов. Именно таким...
Зачем управлять беспорядком
Для любых проектов, кроме самых маленьких, преимущества описываемого подхода не вызывают сомнений. Простота в обслуживании и легкость расширения или встраивания программного кода в разные страницы являются ключевыми аспектами, кот...
Изменение стилей узлов
Функция dojo.style из библиотеки Base обеспечивает полную возможность получения или изменения значений отдельных атрибутов стиля для конкретного узла. Чтобы получить значение определенного атрибута стиля, достаточно просто передат...
Манипулирование атрибутами
Аналогично приемам работы со стилями узлов, обсуждавшимся в предыдущем разделе, библиотека Base предоставляет функции, позволяющие получать, изменять, удалять и проверять существование атрибутов. Функция dojo.attr работает точн...
Манипулирование контекстом объекта
Глобальный объект window обеспечивает в вебприложениях самый внешний уровень контекста, но иногда бывает необходимо изменить контекст по умолчанию на какойто другой. Например, у вас может возникнуть потребность сохранять состоян...
Обработка массивов
Массивы являются одной из наиболее фундаментальных структур данных в любом императивном языке программирования, включая и JavaScript. Однако, к сожалению, стандартные функции для работы с массивами поддерживаются не всеми господст...
Обработчики событий и организация взаимодействий по подписке
В состав библиотеки Base входят чрезвычайно удобные и гибкие утилиты для организации взаимодействий между объектами JavaScript, узлами DOM и любыми их комбинациями. В этой главе будут представлены все эти конструкции, а также дан...
Обход элементов
Функция forEach передает каждый элемент массива функции, принимающей до трех параметров и не возвращающей никакого значения. Первый параметр – текущий элемент массива, обход которого выполняется, второй параметр (необязательный) –...
Определение родительского элемента
В состав библиотеки Base входят несколько удобных функций, которые дополняют перечень общих функций для работы с DOM. Первая из этих функций, isDescendant, имеет название, говорящее само за себя. Функция принимает два аргумента (з...
Определение типа
В языках программирования с динамической типизаций, таких как JavaScript, очень часто бывает необходимо (и даже желательно) определить тип переменной, прежде чем выполнять какиелибо операции над ней. На первый взгляд определение ...
Поиск местоположения элементов
Две самые распространенные операции при работе с массивами включают в себя определение индекса элемента, причем обе они, по сути, проверяют наличие элемента в массиве. Библиотека Base упрощает поиск двумя функциями с говорящими им...
Поиск узлов DOM
В предыдущей главе была представлена функция dojo.byId – специализированный механизм поиска узлов DOM более переносимым и предсказуемым способом, чем метод document.getElementById. Функция dojo.byId является самой часто используем...
Преобразование элементов
Функции map и filter имеют точно такую же сигнатуру, что и forEach, но они принципиально отличаются от последней тем, что, применяя некоторую логику к каждому элементу массива, они возвращают другой массив, оставляя оригинальный м...
Пример с числами Фибоначчи при использовании локальной версии инструментария
Для сравнения в примере 2.5 приводится тот же самый пример, но на этот раз используется локальная версия инструментария Dojo, а модуль dtdg находится в корневом каталоге инструментария рядом с каталогом dojo, содержащим библиотек...
Пример создания модуля для применения в составе версии XDomain
Рассмотрим небольшой конкретный пример использования инструкций dojo.require и dojo.provide. Для начала рассмотрим простой модуль, реализующий такую тривиальную функцию, как функцию вычисления членов последовательности Фибоначчи. ...
Проверка элементов на соответствие условию
Очень часто бывает необходимо определить, соответствуют ли все элементы массива некоторому условию или существуют ли в массиве элементы, соответствующие некоторому условию. Для выполнения такого рода проверок библиотека Base предо...
Селективность
Необходимость предотвратить возможность выделения текста на странице с помощью мыши возникает не так уж редко, и это иногда действительно способствует увеличению простоты и удобства использования. Фактически в каждом броузере имее...

Страницы: 1 2