Как сгенерировать массив чисел и найти в нем только четные?
Оставлю тут 🤷♂️
Решение на JavaScript
for (let i=0; i<100000; i++){
const num = Math.round(Math.random() * 10000000)
array.push(num)
}
array.filter(i=>!(i%2))
#javascript #forbeginners
Please open Telegram to view this post
VIEW IN TELEGRAM
Открыл для себя сегодня PetiteVue
Тоже самое, что AlpineJs, но ближе к Vue и мне больше нравится)
Интересно кому?
#web #frontend #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
Выше я писал про PetiteVue, сегодня проясню.
Я в тот момент делал полноэкранный вижет обратной связи. И естественно встраиваемый.
До этого я еще почитал о ShadowDom, но не осмелился взять его в работу.
А вот опыт перескакивания между фреймворками у меня большой)
#web #frontend #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Начал делать и понял, что целый Vue тянуть это оч плохая идея. Да и долго это всё, окружение еще настроить, сборку в единый бандл и т.п.
Почитал о SolidJs, понял что долго буду вливаться, и тут промелькнул PetiteVue, которого поддерживает сам Evan You. Почитал кучу хвалебных статей, с помаркой, мол "Для виджетов". И загорелся.
Сразу написал вам пост, и взял в работу.
И вылезли подводные камни...
Мне очень хотелось компоненты, биндинги и вынос логики в JS. А так нельзя 😂
Выходит очень перегруженно, что-то более менее сложное - сломает ногу(
Потерял день и переписал всё обратно на Alpine.
Мораль:
Почитал статью про новый "Супер мега инструмент" и планируешь внедрять - проверь на достоверность 😉
— P.S.
И кстати потом постфактум человек заказчика заявил, что нужен "Подключаемый виджет, в одном .js файле". И инициализцией через JS функцию.
Я подсуетился и за полдня при помощи EsBuild - собрал JavaScript, подключил Sass, Pug и запихнул в бандл все HTML сущности в
<template> тегах.А Alpine c CDN подтягивается, чтобы не плодить кучу разных виджетов с Alpine внутри бандла.
Делается очень просто) Потом расскажу.
#web #frontend #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
А еще знаю, что есть новички в веб разработке, напишу Вам в чате.
Что-то хочется мне для вас устроить прямую трансляцию с разбором Canvas анимации на JavaScript.
Разберем и перепишем с использованием ООП очень простой пример, который у меня на гитхабе лежит. Чуть-чуть потрогаем и вспомним школьную геометрию 8-9 классов)
А кто совсем не "бум-бум" - посмотрит просто, одним глазком. 🙂
#web #frontend #javascript #canvas #animation
Что-то хочется мне для вас устроить прямую трансляцию с разбором Canvas анимации на JavaScript.
Разберем и перепишем с использованием ООП очень простой пример, который у меня на гитхабе лежит. Чуть-чуть потрогаем и вспомним школьную геометрию 8-9 классов)
А кто совсем не "бум-бум" - посмотрит просто, одним глазком. 🙂
#web #frontend #javascript #canvas #animation
Могу немного упростить вводные:
Синие линии строятся по уже имеющимся точкам, но они имеют такие вот петли.
Как мы можем их задетектить, вырезать и на их место поставить точку первого пересечения?
--
А так - у нас имеются только точки зелёной линии, которую надо обвести с заданным радиусом.
И это тоже должны быть точки.
Сейчас - перебирая точки зелёной кривой, я беру точку на заданном радиусом расстоянии слева от текущего направления линии.
Потом обратно прохожусь.
Закрывает две линии вначале и в конце так-же линиями из точек.
Получаем из высчитывая из стартовой или конечной точки зелёной линии - точки на окружности с заданным радиусом и частотой.
Практическое применение - мы можем получить маршрут на карте и обвести область вокруг него с заданным радиусом.
#javascript #canvas #geometry #issue #question
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Мимолетный видос о том, как решить проблемы с правами запуска и т.п. при создании проекта на Angular.
Если сделать так, что не может не создаться проект)
#frontend #angular #guide #troubleshooting #nodejs #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Скрипт для кинопоиска
Как вам такое?
UPD.
— Адаптировал под SSR
— Добавил кнопок на страницы со списками
— Добавил поддержку сериалов
— Заменил текст в кнопке на иконку
— Доработал стили, сделав адаптивными вне зависимости от цвета фона
До этого работало только при прямом переходе на страницу извне, либо после перезагрузки страницы
И только на фильмах
Вот более развернутая демонстрация
#JavaScript
Как вам такое?
UPD.
— Адаптировал под SSR
— Добавил кнопок на страницы со списками
— Добавил поддержку сериалов
— Заменил текст в кнопке на иконку
— Доработал стили, сделав адаптивными вне зависимости от цвета фона
До этого работало только при прямом переходе на страницу извне, либо после перезагрузки страницы
И только на фильмах
Вот более развернутая демонстрация
Используется для того, чтобы вручную ссылки не переписывать и фильмы смотреть даже те, которых нет в KinopoiskHD
На Кинопоиске по сути все фильмы есть, его как поисковик и каталог использую, а смотрю на другом сервисе.
Только теперь это в интерфейс самого кинопоиска вписал.
#JavaScript
❤1👍1
При создании инъецируемых скриптов для сайтов, использующих архитектуру SPA (Single Page Application), может возникнуть потребность отслеживать переходы между страницами или перезагрузки элементов. Из-за динамической подгрузки контента через AJAX и Fetch, события DOMContentLoaded или load будут бесполезны.
Для инъецируемых скриптов, хорошим решением будет отслеживать состояние радиомолчания (network idle). Оно наступает, когда все сетевые запросы завершены, и сеть на некоторое время «замолкает». Подобное поведение полезно, если нужно запустить код только после того, как пройдут все запросы или после перехода на другую страницу, чтобы реинициализировать скрипт.
Представьте себе, что вы хотите внедрить кнопки, виджет или другую логику на странице, которая должна запускаться после перехода на новую страницу в SPA-приложении. В этом случае подойдет отслеживание network-idle, чтобы понять, когда контент страницы загрузился.
1. Инициализация счетчика активных сетевых запросов.
Сниппет отслеживает все сетевые запросы на странице (Fetch и XMLHttpRequest) с помощью PerformanceObserver. Каждый раз, когда начинается новый сетевой запрос, счетчик activeRequests увеличивается.
2. Обработка завершения запросов.
После завершения запроса activeRequests уменьшается, и проверяется состояние сети. Если активных запросов не осталось, через 500 мс на объекте window генерируется событие network-idle.
3. Использование события network-idle.
На это событие можно подписаться, чтобы выполнять нужные действия, как только страница завершит все сетевые активности и будет готова для следующей операции.
4. Задержка перед генерацией события.
Задержка в 500 мс добавлена, чтобы устранить "шум" случайных срабатываний и убедиться, что действительно наступило состояние радиомолчания.
• Модификации роутов в SPA. Если у вашего SPA-приложения не используются сетевые запросы при изменении маршрутов, дополнительно можно привязаться к событиям history.pushState и popstate.
• Очистка обсерверов. Не забывайте отключать обсерверы, чтобы избежать утечек памяти, если ваш скрипт прекращает свое действие при определенных условиях.
Этот сниппет помогает организовать логику на основе сетевых событий в инъецируемых скриптах для приложений с динамическим роутингом, позволяя учитывать состояние “радиомолчания” и гарантируя, инъецируемые скрипты выполняются после прогрузки страницы, а также помогает перезапускать инъецируемый скрипт при переходах между страницами.
#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
И снова React!
Простая библиотека для уведомлений
Сижу подучиваю его, по случаю выхода Tauri v2 из beta!
Rust базово уже знаю, а большая часть работы у меня в любом случае пока ожидается с веб технолиями или фронтом, по Rust я только мелкие задачки буду брать, и делать интерфейс им на React!
Ну а на видео - полностью самописная стилизованная на css modules библиотека, если можно так выразиться.
Довольно интересно было разобраться в том, как я могу хранить состояние без стейт менеджера, и управлять им.
Сначала я чуть не изобрел заново Class Components, при этом не используя реальные классовые компоненты, и даже заставил это вё дело работать.
Под шумок смог реализовать возможность вызова экземпляров класса, будто это функция, как в PHP и Python.
Выложил сниппет в gist.
Достаточно вернуть
Но меня остановил TypeScript, когда я уже смог типизировать абсолютно все свои извращения, но он мне не дал возможности создать тип, который бы представлял из себя смесь объекта и функции.
За что я его люблю, это за две вещи:
• Сильно прокачивает IDE, в плане подсказок кода (и AI ассистенты гораздо лучше тебя понимают)
• И ты если пошел не в ту сторону, если в своем уме, в процессе поиска решения и постоянного рефатокринга, рано или поздно задумаешься "А прав ли я?"
#react #JavaScript #TypeScript
Простая библиотека для уведомлений
Сижу подучиваю его, по случаю выхода Tauri v2 из beta!
Rust базово уже знаю, а большая часть работы у меня в любом случае пока ожидается с веб технолиями или фронтом, по Rust я только мелкие задачки буду брать, и делать интерфейс им на React!
Ну а на видео - полностью самописная стилизованная на css modules библиотека, если можно так выразиться.
Довольно интересно было разобраться в том, как я могу хранить состояние без стейт менеджера, и управлять им.
Сначала я чуть не изобрел заново Class Components, при этом не используя реальные классовые компоненты, и даже заставил это вё дело работать.
Под шумок смог реализовать возможность вызова экземпляров класса, будто это функция, как в PHP и Python.
Выложил сниппет в gist.
Достаточно вернуть
toCallable(this) из конструткора любого класса, и реализовать ему метод callНо меня остановил TypeScript, когда я уже смог типизировать абсолютно все свои извращения, но он мне не дал возможности создать тип, который бы представлял из себя смесь объекта и функции.
За что я его люблю, это за две вещи:
• Сильно прокачивает IDE, в плане подсказок кода (и AI ассистенты гораздо лучше тебя понимают)
• И ты если пошел не в ту сторону, если в своем уме, в процессе поиска решения и постоянного рефатокринга, рано или поздно задумаешься "А прав ли я?"
ЗЫ.
Исходники выложу если попросите.
#react #JavaScript #TypeScript
👍1