I almost posted this under ‘Bugs,’ but it’s probably more accurate to describe this as an enhancement request. Increasingly, I’m finding processing bottlenecks and stalls caused by what appears to be over-zealous timeout conditions in whatever library handles input. This is especially obvious during entry of a field that undergoes heavy downstream processing: If I cut-and-paste a value into the field, processing delay is kept to a minimum, but if I enter it by hand, there is a noticeable lag. The problem comes from the downstream routines being called repeatedly against a partial entry. (I’m not sure of the default timeout value, but it’s too short for me to be able to enter a complete word before it fires.¹) As a result, the full suite of routines executes up to LEN(Word) times whenever the user enters ‘Word’. This in turn makes Airtable (and, more importantly, me 😉 ) look bad. Paradoxically, lengthening timeout values on data-forwarding conditions can actually result in not only a perceived but often times an actual performance improvement and a better UX.² I realize Airtable is using underscore.js, but for some reason debounce() doesn’t appear to be working as one would expect. Some cough years ago, I demonstrated this in the context of asynchronous data over an X.25 network. For my troubles I ended up lead on a popular but decidedly kluged-together product, in a demonstration of no good deed going unpunished…
... View more