Ренат Олейник, можно то-же самое сделать на requestAnimationFrame, как в ответе Сергей Соколов, но нет особого смысла вычислять обновление для таймера в каждом кадре (обычно это 60фпс, или около 16ms). Но это будет просто соблюдение формальности, потому что автору в общем-то не мешает сам по себе setInterval, он хотел просто добиться большей точности. Вероятно он уже знает, что setInterval или setTimeout сработает не раньше заданного значения, что вполне допускает срабатывание позже, когда браузер занят какими-то другими задачами.
WbICHA, естественно это не финальное решение.
Про Date.now() поддерживаю, а 300 это не интервал отрисовки, а интервал проверки значения.
Если ставить 1000, то сильно заметно на глаз, когда счетчик на таймере меняется сразу на два. И да, наверное лучше поставить не 300, а 250 или 500, чтобы таймер шел равномернее.
если приемник батареечный, то не нужен там конвертер, он и от 5в нормально будет работать, т.к. для батареек просадка до 1.25 - настолько норма, что пальчиковые аккумы даже имеют напряжение 1.2 в полностью заряженном состоянии.
GandalfWhiteGO, проблема в том, что вы даже не проверили решение, а пишете что есть какая-то проблема :)
Ну или вы этот \n рассматриваете именно как пару символов, а не как escape-последовательность обозначающую перевод строки.
camperofcamper, ну какбэ html парсеры тоже существуют, если вас почему-то не устраивает родной пхп-шный (он и в самом деле не самый удобный, зато быстрый).
kostya1704, localStorage, если используете эти данные только на фронте.
Сессия, если используете их на беке, и не нужно их хранить долго.
Если предполагается, что пользователь увидит эти просмотренных даже через пару месяцев, то БД.
alert(color) - это же вы добавили? Там и не может быть альфа-канала, там только RGB.