In this series we will tackle the problem of optimizing network access to fetch data from the network, a common theme of networked applications. While it is certainly trivial to fetch data from a server in any modern framework or OS, optimizing the frequency of access to the network, in order to save bandwidth, battery, user frustration, amongst other things, is complex. More so if you want to reduce code duplication, ensure testability, and leave something useful (and comprehensible) for the next engineer to use.
Context
I’m developing a step sequencer with the help of Vue.js and Tone.js.
Recently I had to address an interesting UX problem. There was the need for small controls for each track, in the sequencer. I ended up going with knobs for the volume and had to deal with a UX pitfall. Keeping the left button pressed and trying to manage the volume when the mouse left the small 20×20 area it stopped controlling the knob correctly and instead started having a funky behavior.

