- From: Maciej Stachowiak <mjs@apple.com>
- Date: Fri, 21 Feb 2014 16:38:20 -0800
- To: Ian Hickson <ian@hixie.ch>
- Cc: Jonas Sicking <jonas@sicking.cc>, Edward O'Connor <eoconnor@apple.com>, Webapps WG <public-webapps@w3.org>
On Feb 21, 2014, at 2:28 PM, Ian Hickson <ian@hixie.ch> wrote: > On Fri, 21 Feb 2014, Maciej Stachowiak wrote: >> >> I'd guess most sophisticated webapps do not use attribute-based event >> handlers (as opposed to addEventListener), so they would not get this >> convenient scoping benefit. > > That's not clear to me. I mean, certainly today, with div soup, they > don't. But that's at least partly because there's no sane way to do it > when your markup isn't really declarative in any useful sense. > > When you have Web components that let you get the effect you want while > sticking to a terse markup language, it becomes much more feasible to > return to using inline event handlers. Might be, but I'm not sure you can center a design on a hypothetical future change in web developer behavior. > >> If you're looking at an out-of-line function, then your comparison is: >> >> this.a.value = process(value) >> this.querySelector("#a").value = process(value) >> >> which is a less dramatic difference. > > It's a pretty compelling difference, IMHO. > > >> Also, the short version gives you the risk of namespace conflicts with >> the built-in methods and properties of form. > > You can do this instead if that feels like a real risk: > > this.elements.a.value = process(value) Which is hardly an upgrade at all over: this.querySelector("#a").value = process(value) Cheers, Maciej
Received on Saturday, 22 February 2014 00:38:47 UTC