DOM предоставляет API для валидации пользовательского ввода. Вообще говоря, мы им пользуемся часто, например:<input type="email" required />Живой пример: https://codepen.io/s5604/pen/NPPYGYjПоведение по умолчанию работает следующим образом: если у нас есть форма (<form>) с несколькими полями ввода, то при изменении любого из них происходит валидация введённых данных. При вызове submit для полей, которые содержат атрибуты валидации и не прошли её, отображаются подсказки об ош…
Комбинация библиотек D3.js и Leaflet предоставляет мощный инструментарий для создания интерактивных географических визуализаций. Leaflet отвечает за отображение карт и управление слоями, а D3.js позволяет добавлять кастомные элементы, такие как маркеры, линии или сложные графы. В этой статье мы рассмотрим, как интегрировать D3.js с Leaflet для размещения объектов и построения графов на карте, центрированной в Казани, а также предоставим пример кода для практического применения.Почему выбирают D…
Demo | GitHubЧасть 1 Работа с DOM | Часть 2 Работа с потокамиРисунок 1. Data Grid на 1 000 000 строкОсобенности Fast Data Grid:Невероятно быстрыйМногопоточныйРаботает на пк и телефонахВсего 523 строчки кодаНет зависимостейVanilla JavaScriptПопробуйте скролл и поиск по 1 000 000 строк - Fast Data Grid.В статье расскажу про работу с потоками.Основная идея: вынести поиск в отдельный поток. Показывать результаты поиска частями по мере готовности, не ждать полного завершения поискаДолгие вычисления …
Привет всем! Хочу поделиться своим подходом к созданию чат-бота с "умной документацией" для проекта, над которым я работаю. Я не эксперт в ИИ, так что любые предложения и улучшения приветствуются!Цель этого поста — не создавать еще один туториал по созданию чат-бота на основе OpenAI. Такого контента и так хватает. Вместо этого основная идея — проиндексировать документацию, разделив её на фрагменты, сгенерировать для них встраивания с помощью OpenAI и выполнять поиск по схожести, чтобы н…
В этом посте я опишу, как настроить современную маршрутизацию и использовать сигналы для реактивного отключения выбранных ссылок.Сигналы — это просто реализация паттерна "observable". Хотя мы могли бы использовать любую библиотеку для этой цели, мы создадим свою собственную, чтобы обеспечить лучшую наглядность и понимание.export class Observable { #callbacks = new Set(); notify() { for (const fn of this.#callbacks) fn(); } subscribe(callback) { this.#callbacks.add(callba…
19 марта 2025 года вышла стабильная версия Valibot — библиотеки для валидации данных в JavaScript/TypeScript. Разработанная как альтернатива популярному Zod, она сочетает минималистичный дизайн с мощными возможностями.В этой статье мы сравним Valibot и Zod по трём ключевым параметрам: синтаксису API, размеру библиотеки и скорости работы. Вы узнаете, чем эти решения отличаются друг от друга и почему стоит использовать специализированные инструменты валидации входящих данных.Зачем нужны библиотек…
До недавнего времени программный доступ к куки в браузере осуществлялся через API document.cookie — простой строковый геттер/сеттер. Для получения одного файла куки приходилось разбирать всю строку вручную и преобразовывать ее в удобный формат. А чтобы записать куки, нужно было сначала сформировать структурированные данные, затем сериализовать их в строку и только после этого присвоить значение document.cookie. Разработчики часто используют популярные библиотеки, например js-cookie, которые …
Я знаю, что на эту тему уже было сказано много, но настал мой черед. На JS я пишу больше 10 лет, так что терпел я достаточно :) Когда мы говорим “джаваскрипт”, мы подразумеваем много разных вещей:Стандарт EcmaScriptСреда исполнения (NodeJS, браузер)Экосистема (библиотеки, фреймворки, тулинг)Иногда есть смысл поговорить об этих вещах по отдельности, но сегодня мы обсудим их все сразу, и назовем это просто “джаваскрипт”. А именно, я объясню, почему джаваскрипт это плохой язык.Что значит плохой?А …
Привет всем! Меня зовут Антон Галич, я фронтенд-инженер в департаменте разработки Analytics Platform в Авито. Команда занимается разработкой и поддержкой платформы для сбора и доставки аналитики в Авито – Clickstream. В этой статье я рассказываю историю о том, как мы перевели аналитику для внутренних сервисов компании на нашу собственную платформу, отказавшись от стороннего решения Amplitude.Дисклеймер: сущности, относящиеся к нашей платформе, далее в тексте называю, используя префикс cs-.Что в…