Category : javascript

javascript
Всё, что можно автоматизировать, должно быть автоматизировано. Даже aria-label

Я написала свой ESLint-плагин для доступности. Вот как и зачем.Я люблю автоматизацию: если что-то можно доверить инструменту, это стоит делать. Особенно то, что повторяется из проекта в проект: aria-label, alt, tabIndex.Линтер - это как фоновый напарник: один раз настроил - и он работает. Не устает, не отвлекается, не забывает. А в контексте доступности, где многое завязано на деталях, это особенно важно.Почему мне захотелось написать свой плагин?На самом деле, всё началось не с бага. Скорее - …

  • среда, 7 мая 2025 г. в 00:00:06
javascript
Как делать внешние редиректы с JavaScript?

Вопрос перенаправлений кажется простым или не особо серьезным для обдумывания, но в будущем может вызвать проблемы при слишком халатном подходе.Здесь я хочу рассказать о том, как делать внешние редиректы безопасно и удобно. Для внутренних перенаправлений пользуйтесь History API.Давайте сравним самые популярные методы для перенаправления (с добавлением записей в историю браузера):window.location.hrefwindow.location.assignСходстваБазово: оба способа перенаправляют на другую страницу с новой запис…

  • вторник, 6 мая 2025 г. в 00:00:04
javascript
Новый язык от 1С: Зачем? Кому? Стоит ли лезть?

Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!Так вышло, что последние полгода я провёл в тесных объятиях «Личного кабинета сотрудника» на Элементе — новом языке программирования от 1С. За это время я успел его изучить, полюбить, возненавидеть, снова полюбить и, наконец, написать эту статью, чтобы поделиться своими впечатлениями, страданиями и неожиданными открытиями.1С:Предприятие.ЭлементКто я такой и почему мне можно верить (х…

  • вторник, 6 мая 2025 г. в 00:00:04
javascript
Юнит тесты роя агентов

Исходный код, разобранный в статье, опубликован в этом репозиторииПри разработке роя агентов встает вопрос юнит тестирования. Рой агентов позволяет использовать разные LLM с выбором другой активной модели исходя из действий пользователя. Как следствие, обрабатывать идентичную переписку может любой агент из роя, например, был сделан Redis FLUSHALL и активный агент потерялся: чат продолжается с корневого Triage agentБез тестов нет технической возможности отлавливать редкие состояния модели, когда…

  • понедельник, 5 мая 2025 г. в 00:00:04
javascript
Как сделать редирект с JavaScript?

Вопрос перенаправлений кажется простым или не особо серьезным для обдумывания, но в будущем может вызвать проблемы при слишком халатном подходе.Я хочу сравнить самые популярные методы для перенаправления с добавлением записей в историю браузера:window.location.hrefwindow.location.assignСходстваБазово: оба способа перенаправляют на другую страницу с новой записью в истории.Так же оба уязвимы XSS-атакам, например оба примера отработают:const input = 'javascript:alert("хак")'; win…

  • понедельник, 5 мая 2025 г. в 00:00:03
javascript
Валидация сложных форм с помощью Constraint Validation API

DOM предоставляет API для валидации пользовательского ввода. Вообще говоря, мы им пользуемся часто, например:<input type="email" required />Живой пример: https://codepen.io/s5604/pen/NPPYGYjПоведение по умолчанию работает следующим образом: если у нас есть форма (<form>) с несколькими полями ввода, то при изменении любого из них происходит валидация введённых данных. При вызове submit для полей, которые содержат атрибуты валидации и не прошли её, отображаются подсказки об ош…

  • воскресенье, 4 мая 2025 г. в 00:00:06
javascript
Создание интерактивных карт с D3.js и Leaflet: Визуализация объектов и графов

Комбинация библиотек D3.js и Leaflet предоставляет мощный инструментарий для создания интерактивных географических визуализаций. Leaflet отвечает за отображение карт и управление слоями, а D3.js позволяет добавлять кастомные элементы, такие как маркеры, линии или сложные графы. В этой статье мы рассмотрим, как интегрировать D3.js с Leaflet для размещения объектов и построения графов на карте, центрированной в Казани, а также предоставим пример кода для практического применения.Почему выбирают D…

  • суббота, 3 мая 2025 г. в 00:00:09
javascript
JavaScript. Как сделать невероятно быстрый многопоточный Data Grid на 1 000 000 строк. Часть 2/2: р…

Demo | GitHubЧасть 1 Работа с DOM | Часть 2 Работа с потокамиРисунок 1. Data Grid на 1 000 000 строкОсобенности Fast Data Grid:Невероятно быстрыйМногопоточныйРаботает на пк и телефонахВсего 523 строчки кодаНет зависимостейVanilla JavaScriptПопробуйте скролл и поиск по 1 000 000 строк - Fast Data Grid.В статье расскажу про работу с потоками.Основная идея: вынести поиск в отдельный поток. Показывать результаты поиска частями по мере готовности, не ждать полного завершения поискаДолгие вычисления …

  • пятница, 2 мая 2025 г. в 00:00:06
javascript
Создание Умной Документации на основе Встраиваний OpenAI (Деление на фрагменты, Индексация и Поиск)

Привет всем! Хочу поделиться своим подходом к созданию чат-бота с "умной документацией" для проекта, над которым я работаю. Я не эксперт в ИИ, так что любые предложения и улучшения приветствуются!Цель этого поста — не создавать еще один туториал по созданию чат-бота на основе OpenAI. Такого контента и так хватает. Вместо этого основная идея — проиндексировать документацию, разделив её на фрагменты, сгенерировать для них встраивания с помощью OpenAI и выполнять поиск по схожести, чтобы н…

  • четверг, 1 мая 2025 г. в 00:00:04