So, I haven’t seen this mentioned anywhere, but event attachment is pretty damn slow in JavaScript once you get up there in items. On an application I’m writing, for 2000 items, it takes about 46 seconds to attach keypress functions onto them (43 seconds if you pass a function reference instead of using listeners) in IE. It takes over 10 seconds just to loop through the elements!

Suffice to say, if you’re not attaching events, unless you absolutely have to, it’s probably best to use inline attachment. (the attachment appears to scale linearly, it’s just slow [using sa’s addEvent, but difference is marginal]). Here’s a testcase (stripped of cruft). Mozilla takes longer to render the input fields, but is much (~100x) faster at attaching listeners. It also scales linearly. IE loads the inputs very quickly, but attaching listeners increases at a greater than linear rate (and deadlocks browser while loading). Inline attachment is O(1), as you would expect: