javascript42
Главная
Все учебники
Блог
Учебник HTMX
Введение
Что такое HTMX
История и философия библиотеки
Сравнение с традиционными подходами
Когда стоит использовать HTMX
Установка и подключение
Основы работы с HTMX
Атрибуты hx-get, hx-post, hx-put, hx-delete
Целевые элементы и hx-target
Стратегии замены контента с hx-swap
Индикаторы загрузки
Триггеры событий через hx-trigger
Синхронизация запросов с hx-sync
Передача параметров и hx-vals
Расширенный синтаксис hx-trigger
HTTP-запросы и ответы
Формирование заголовков запросов
Обработка заголовков ответов
Заголовки HX-Request и HX-Trigger
Заголовок HX-Target
Перенаправления и HX-Redirect
Обновление URL с HX-Push-Url
Валидация на стороне сервера
Обработка ошибок HTTP
События HTMX
Жизненный цикл запроса
События htmx:configRequest и htmx:beforeRequest
События htmx:beforeSwap и htmx:afterSwap
События htmx:load и htmx:afterSettle
Отмена запросов через события
Всплытие событий и их перехват
Работа с формами
Отправка форм через AJAX
Валидация полей в реальном времени
Загрузка файлов
Multipart форматы
Сериализация данных форм
Обработка множественных submit-кнопок
Прогресс загрузки файлов
Расширенные атрибуты
Подтверждение действий с hx-confirm
Включение элементов с hx-include
Параметры истории браузера
Отключение кеширования
Настройка таймаутов
Атрибут hx-preserve
Расширение запросов с hx-ext
Управление историей браузера
Push-стратегия навигации
Восстановление состояния
Настройка snapshot-кеша
Предотвращение сохранения в историю
Интеграция с History API
Polling и websockets
Периодические запросы
Load polling
Условная остановка polling
Server-Sent Events
Websockets расширение
Обработка переподключений
Out of Band Updates
Механизм hx-swap-oob
Обновление множественных элементов
Стратегии OOB-замены
Селекторы для OOB
Приоритет обновлений
Индикация состояния
Классы htmx-request и htmx-swapping
Кастомные индикаторы загрузки
Атрибут hx-indicator
Отложенная индикация
Стилизация переходов
Расширения HTMX
Архитектура расширений
Встроенные расширения
Class-tools расширение
Debug расширение
Path-deps расширение
Preload расширение
Морфинг с помощью Idiomorph
Создание собственных расширений
JavaScript API
Методы htmx.ajax и htmx.trigger
Программное управление элементами
htmx.find и htmx.findAll
Обработка конфигурации
Методы htmx.on и htmx.off
Утилиты htmx.values
Управление историей через API
Безопасность
Защита от XSS
CSRF-токены
Content Security Policy
Санитизация пользовательского ввода
Защита от clickjacking
Rate limiting на клиенте
Производительность и оптимизация
Минимизация количества запросов
Стратегии кеширования
Ленивая загрузка контента
Префетчинг с помощью preload
Оптимизация DOM-операций
Debouncing и throttling
Размер библиотеки и tree-shaking
Интеграция с фреймворками
Использование с Express.js
Django и HTMX
Flask-интеграция
Ruby on Rails
Laravel и Livewire
ASP.NET Core
Шаблонизация на сервере
Рендеринг фрагментов HTML
Частичные шаблоны
Компоненты и переиспользование
Передача контекста
Условный рендеринг
Циклы и коллекции
Паттерны проектирования
Активный поиск
Бесконечная прокрутка
Редактирование по клику
Bulk-операции
Cascade-селекты
Модальные окна
Inline-валидация
Прогресс-бары
Drag and drop
Доступность
ARIA-атрибуты для динамического контента
Управление фокусом
Объявления для скринридеров
Навигация с клавиатуры
Семантическая разметка
Reduced motion
Тестирование
Unit-тестирование HTMX-компонентов
Мокирование HTTP-запросов
E2E-тестирование с Playwright
Cypress и HTMX
Тестирование событий
Ассерты для swap-операций
Отладка
Использование расширения debug
Логирование событий
Инспекция запросов в DevTools
Типичные ошибки и их решения
Проблемы с CORS
Отладка swap-операций
Миграция и совместимость
Переход с jQuery
Интеграция в существующие проекты
Совместимость с другими библиотеками
Постепенное внедрение
Поддержка старых браузеров
Полифиллы
Архитектурные решения
Разделение ответственности
Организация серверного кода
Структура клиентских компонентов
Управление состоянием
Обработка сложных workflow
Масштабирование приложений
Продвинутые техники
Морфинг DOM
Виртуальные списки
Оптимистичные обновления
Undo/redo функциональность
Офлайн-режим
Service workers и HTMX
Кастомные swap-стратегии
Справочник атрибутов
Полный список hx-атрибутов
Модификаторы событий
Синтаксис селекторов
Специальные значения
Приоритет атрибутов
Справочник событий
События жизненного цикла
События форм
События истории
События расширений
Структура объекта события
Справочник заголовков
Клиентские заголовки
Серверные заголовки
Кастомные заголовки
Конфигурация
Глобальные настройки htmx.config
Переопределение значений по умолчанию
Параметры истории
Отключение функций