The Problem with Learning by Doing: DOM events

Sometimes you learn wrong.

I’ve built myself a little music player that loops sections of songs pretty much as long as one could want. I’m asking the user to pick a minimum duration from 0 seconds to 1 day. This creates an interesting UI problem: the user probably wants to pick something in the realm of 5 minutes, but 5 minutes is only 1 pixel away from 10 minutes on this scale. So I wrote a script that will get and set the value of a range input logarithmically, so that the left 1/3 covers 10 minutes, the middle 1/3 covers 5 hours, and the right 1/3 covers 1 day. This works great, and the user has fine control within each unit scale.

This creates a further problem, though: the user needs real-time feedback of how I’m converting their input. To do this, I used the change event, which I’ve been using since I was born into JavaScript. It worked like a charm.

Then 4 days ago, it broke. Chrome broke it by fixing this bug. The behavior described in the bug report (from 2012!) was the behavior I had come to accept as correct. Fixing this bug meant breaking my code, to conform to spec! I had no idea, because I learned this by using it, not by reading the spec.

Should I read the spec of every new tag in HTML5?

Yes.

I’ve learned a lot by doing, but especially in a distributed development field such as the web, the standards do need to be read. A lot of people have broken up the spec into shiny chunks that are easily digested. However, in this case, I can’t find a single mention of the expected behavior of the change event for [type=range]. The spec draft at W3.org describes the change event for inputs, generally, as firing “when the value is committed, if that makes sense for the control, or else when the control loses focus. In all cases, the input event comes before the corresponding change event (if any).”

I had never even heard of the input event. This is the event that I should have been using in the first place, since I’m reacting to someone’s input, not their decision (which would be the change event).

I will continue to learn by doing; I can’t help it, and I can’t do without it. But, the next time I’m aware that I’m doing something new, I’m going to jog over to W3.org to check that I’m leveraging stuff that’s going to be around for a while.

0 thoughts on “The Problem with Learning by Doing: DOM events”

  1. FrankBuh says:
    Your comment is awaiting moderation. This is a preview, your comment will be visible after it has been approved.

    Виртуальные телефонные номера для соцсетей и мессенджеров

    В современном цифровом мире электронные телефонные номера становятся всё более актуальными для регистрации в социальных платформах и чатах. Такие номера позволяют обезопасить личные данные, а также упрощают процесс создания дополнительных аккаунтов.

    Зачем нужны виртуальные номера

    Основная назначение виртуальных телефонных номеров — помощь приватности и удобства при общении. Вместо использования личного номера телефона для регистрации, пользователи применяют виртуальные номера, что снижает риск попадания конфиденциальной информации к посторонним.

    Как работают виртуальные номера

    Виртуальные телефонные номера — это искусственные номера, которые не привязаны к физической SIM-карте. Они предоставляются через интернет-сервисы и используются для приема кодов подтверждения и звонков в режиме онлайн.

    Преимущества использования

    1. Анонимность — позволяет не раскрывать реальный номер.
    2. Защита данных — минимизирует риск утечки информации https://kolba.com.ua/index.php?topic=132916.new
    3. Гибкость — подходит для различных соцсетей и мессенджеров.
    4. Удобство — регистрация и активация происходит быстро и без труда.
    Где можно использовать виртуальные номера

    Виртуальные номера часто применяются при регистрации в таких популярных соцсетях, как Instagram, а также в мессенджерах: Telegram. Они также полезны для создания временных профилей или для ведения нескольких аккаунтов одновременно.

    Заключение

    Онлайн телефонные номера — это полезный инструмент для тех, кто ценит конфиденциальность и безопасность при использовании соцсетей и мессенджеров. Они предлагают быстрый и безопасный способ регистрации, защищая ваши персональные сведения от нежелательных лиц.

Leave a Reply

Your email address will not be published.