javascript42
Главная
Все учебники
Блог
Учебник Awesomplete
Введение
Что такое Awesomplete
История создания библиотеки
Философия и принципы работы
Сравнение с другими решениями
Когда использовать Awesomplete
Системные требования и совместимость
Установка и подключение
Загрузка библиотеки
Подключение через CDN
Установка через npm
Установка через yarn
Подключение CSS и JavaScript файлов
Проверка корректности установки
Базовая настройка
Минимальный рабочий пример
Структура HTML разметки
Инициализация через JavaScript
Инициализация через data-атрибуты
Работа с массивом строк
Первичная конфигурация
Источники данных
Простые массивы строк
Массивы объектов
Структура объектов данных
Динамическая загрузка данных
Работа с Ajax запросами
Обработка JSON ответов
Кэширование данных
Обновление списка в реальном времени
Конфигурация и параметры
Полный список параметров
Параметр minChars
Параметр maxItems
Параметр autoFirst
Параметр filter
Параметр sort
Параметр item
Параметр replace
Параметр data
Комбинирование параметров
Фильтрация и сортировка
Встроенная функция фильтрации
Написание собственных фильтров
Регистронезависимая фильтрация
Фильтрация по началу строки
Фильтрация по вхождению подстроки
Расширенные алгоритмы фильтрации
Стандартная сортировка
Пользовательская сортировка
Сортировка по релевантности
Приоритизация результатов
Работа с событиями
Обзор системы событий
Событие awesomplete-highlight
Событие awesomplete-select
Событие awesomplete-selectcomplete
Событие awesomplete-open
Событие awesomplete-close
Отмена действий по умолчанию
Добавление обработчиков событий
Удаление обработчиков событий
Цепочки событий
Методы API
Метод open
Метод close
Метод next
Метод previous
Метод goto
Метод select
Метод evaluate
Метод destroy
Проверка состояния виджета
Программное управление
Свойства объекта
Свойство ul
Свойство input
Свойство container
Свойство selected
Свойство index
Доступ к внутренним элементам
Чтение текущего состояния
Модификация свойств
Стилизация и темизация
Структура HTML элементов
Базовые CSS классы
Класс awesomplete
Класс visually-hidden
Стилизация выпадающего списка
Стилизация элементов списка
Стилизация выделенных элементов
Создание собственных тем
Адаптивный дизайн
Работа с препроцессорами
Кастомизация отображения
Изменение функции item
Форматирование текста элементов
Добавление HTML в элементы
Использование иконок
Многострочные элементы
Группировка элементов
Разделители между группами
Подсветка совпадений
Визуальная индикация типов
Функция replace
Назначение функции replace
Стандартное поведение
Модификация вставляемого значения
Работа с объектами данных
Вставка частичных значений
Множественный выбор значений
Теги и токены
Обработка специальных символов
Множественный ввод
Реализация множественного выбора
Разделители значений
Обработка запятых и точек с запятой
Удаление выбранных элементов
Визуализация выбранных элементов
Ограничение количества выборов
Валидация множественного ввода
Интеграция с формами
Работа с элементами form
Отправка данных формы
Валидация на стороне клиента
Обязательные поля
Работа с hidden полями
Синхронизация значений
Обработка сброса формы
Программная отправка
Доступность
Поддержка ARIA атрибутов
Навигация с клавиатуры
Клавиша Enter
Клавиши стрелок
Клавиша Escape
Клавиша Tab
Поддержка скринридеров
Фокус и blur
Семантическая разметка
Производительность
Оптимизация больших списков
Ленивая загрузка данных
Дебаунсинг пользовательского ввода
Виртуализация списка
Минимизация перерисовок
Оптимизация фильтров
Профилирование производительности
Лучшие практики
Расширенные техники
Асинхронная загрузка данных
Работа с внешними API
Обработка задержек сети
Индикация загрузки
Обработка ошибок загрузки
Prefetch и предзагрузка
Работа с localStorage
Кэширование на клиенте
Мультиязычность
Поддержка Unicode
Работа с разными алфавитами
RTL языки
Локализация интерфейса
Настройка под регион
Сортировка с учетом локали
Совместимость с фреймворками
Использование с React
Использование с Vue
Использование с Angular
Использование с Svelte
Интеграция с jQuery
Работа с виртуальным DOM
Управление жизненным циклом
Отладка и тестирование
Инструменты разработчика
Логирование событий
Трассировка выполнения
Типичные ошибки
Решение проблем инициализации
Конфликты с другими библиотеками
Модульное тестирование
Интеграционное тестирование
E2E тестирование
Безопасность
XSS атаки и защита
Санитизация пользовательского ввода
Экранирование HTML
Защита от инъекций
Безопасная работа с данными
Content Security Policy
Валидация на сервере
Миграция и обновление
Обновление версий библиотеки
Изменения в API между версиями
Deprecated функции
Миграция с других библиотек
Обратная совместимость
Стратегии обновления
Расширение функциональности
Создание плагинов
Архитектура расширений
Hooks и точки расширения
Патчинг базовой функциональности
Создание обёрток
Публикация расширений