This media is not supported in your browser
VIEW IN TELEGRAM
Exercism — это платформа для изучения программирования через практические задания. Можно практиковаться на 70 различных языках, в том числе и на JS.
📌 Ссылочка: exercism.org
📣 JS Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5🤝4❤1
Ты вообще тут?
Иногда нужно узнать, активен ли пользователь — сидит ли на сайте или ушёл пить чай. Это важно для веб-чатов, игр, админок или просто чтобы не тратить ресурсы зря.
Создадим скрипт, который будет отслеживать активность мыши, клавиатуры и видимость вкладки.
Начнём с базовых переменных.
Нам нужен флаг активности и таймер, который будет срабатывать при бездействии:
Создаём функцию активности.
Если пользователь активен — сбрасываем таймер. Если нет — логируем "AFK":
Регистрируем действия, при которых считаем пользователя активным:
Следим за вкладкой.
Если пользователь переключился на другую — сбрасываем активность:
Готово!
Теперь ты можешь реагировать на бездействие:
отключать фоновые процессы, ставить статус "AFK" или приостанавливать тяжёлые операции.
📣 JS Ready | #практика
Иногда нужно узнать, активен ли пользователь — сидит ли на сайте или ушёл пить чай. Это важно для веб-чатов, игр, админок или просто чтобы не тратить ресурсы зря.
Создадим скрипт, который будет отслеживать активность мыши, клавиатуры и видимость вкладки.
Начнём с базовых переменных.
Нам нужен флаг активности и таймер, который будет срабатывать при бездействии:
let isUserActive = true;
let afkTimeout = null;
const AFK_DELAY = 2 * 60 * 1000; // 2 минуты
Создаём функцию активности.
Если пользователь активен — сбрасываем таймер. Если нет — логируем "AFK":
function markUserActive() {
isUserActive = true;
clearTimeout(afkTimeout);
afkTimeout = setTimeout(() => {
isUserActive = false;
console.log("AFK...");
}, AFK_DELAY);
}
Регистрируем действия, при которых считаем пользователя активным:
['mousemove', 'keydown'].forEach(evt =>
document.addEventListener(evt, markUserActive)
);
Следим за вкладкой.
Если пользователь переключился на другую — сбрасываем активность:
document.addEventListener('visibilitychange', () => {
isUserActive = !document.hidden;
if (isUserActive) markUserActive();
});
Готово!
Теперь ты можешь реагировать на бездействие:
отключать фоновые процессы, ставить статус "AFK" или приостанавливать тяжёлые операции.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥6❤3
Сегодня покажу, как с помощью ленивых итераторов —
range, map, filter, take можно собирать цепочки преобразований без массивов и промежуточных данных.Основные приёмы:
• range() — числа на лету
• map() / filter() — без массивов
• take() — чтобы не улететь в бесконечность
Такие конструкции отлично подходят для работы с потоками, бесконечными источниками и сложными пайплайнами, где важны контроль и читаемость.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🤝8👍7
👍7🔥6❤5😁1
В этом посте собрал вам ключевые методы работы с объектами: от заморозки и сравнения до тонкой настройки свойств и безопасных проверок. Отличный инструментариум, чтобы код стал предсказуемым, читаемым и безопасным.🔥 — если узнал новое
🤝 — если уже работал с ними
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍8🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
JSRobot — небольшая игра, в которой вам предстоит управлять роботом с помощью Javascript для преодоления препятствий и решения головоломок.
📌 Ссылочка: antemalkah.jsrobot
📣 JS Ready | #игра
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥7🤝6
Задача: написать консольное приложение, которое эмулирует случайные броски кубиков и выводит результат.
В этом посте:
• Запрашиваем количество кубиков у пользователя
• Используем Math.random() для генерации значений
• Работаем с циклами, массивами и консольным выводом
🔥 — если попробуешь повторить
🤝 — если уже делал подобное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍14🤝13❤9😁1