- From: Scott Miles <sjmiles@google.com>
- Date: Wed, 26 Mar 2014 13:53:34 -0700
- To: Ryosuke Niwa <rniwa@apple.com>
- Cc: Brian Kardell <bkardell@gmail.com>, "public-webapps@w3.org" <public-webapps@w3.org>
- Message-ID: <CAHbmOLbq5q2r+e1ZFnBvw2raAYWoHMev-=rZP0moZpq8_15_qg@mail.gmail.com>
Yes, I agree with what R. Niwa says. I believe there are many variations on what should happen during element lifecycle, and the element itself is best positioned to make those choices. `:unresolved` is special because it exists a-priori to the element having any control. Scott On Wed, Mar 26, 2014 at 12:26 PM, Ryosuke Niwa <rniwa@apple.com> wrote: > Maybe the problem comes from not distinguishing elements being created and > ready for API access versus elements is ready for interactions? > > I’d also imagine that the exact appearance of a custom element between the > time the element is created and the time it is ready for interaction will > depend on what the element does. e.g. img behaves more or less like > display:none at least until the dimension is available, and then updates > the screen as the image is loaded. iframe on the other hand will occupy > the fixed size in accordance to its style from the beginning, and simply > updates its content. > > Given that, I’m not certain adding another pseudo element in UA is the > right approach here. I suspect there could be multiple states between the > time element is created and it’s ready for user interaction for some custom > elements. Custom pseudo, for example, seems like a more appealing solution > in that regard. > > - R. Niwa > > On Mar 25, 2014, at 2:31 PM, Brian Kardell <bkardell@gmail.com> wrote: > > I'm working with several individuals of varying skillsets on using/making > custom elements - we are using a way cut-back subset of what we think are > the really stable just to get started but I had an observation/thought that > I wanted to share with the list based on feedback/experience so far... > > It turns out that we have a lot of what I am going to call "async > components" - things that involve calling 1 or more services during their > creation in order to actually draw something useful on the screen. These > range from something simple like an RSS element (which, of course, has to > fetch the feed) to complex wizards which have to consult a service to > determine which view/step they are even on and then potentially additional > request(s) to display that view in a good way. In both of these cases I've > seen confusion over the :unresolved pseudo-class. Essentially, the created > callback has happened so from the currently defined lifecycle state it's > ":resolved", but still not useful. This can easily be messed up at both > ends (assuming that the thing sticking markup in a page and the CSS that > styles it are two ends) such that we get FOUC garbage between the time > something is ":resolved" and when it is actually conceptually "ready". I > realize that there are a number of ways to work around this and maybe do it > "properly" such that this doesn't happen, but there are an infinitely > greater number of ways to barf unhappy content into the screen before its > time. To everyone who I see look at this, it seems they conceptually > associate :resolved with "ok it's ready," and my thought is "that isn't > necessarily an insensible thing to think since there is clearly a > pseudo-class about 'non-readiness' of some kind and nothing else that seems > to address this". > > I see a few options, I think all of them can be seen as enhancements, not > necessary to a v1 spec if it is going to hold up something important. The > first would be to let the created callback optionally return a promise - if > returned we can delay :resolved until the promise is fulfilled. The other > is to introduce another pseudo like ":loaded" and let the author > participate in that somehow, perhaps the same way (optionally return a > promise from created). Either way, it seems to me that if we had that, my > folks would use that over the current definition of :resolved in a lot of > cases. > > > > -- > Brian Kardell :: @briankardell :: hitchjs.com > > >
Received on Wednesday, 26 March 2014 20:54:02 UTC