Nice! Thanks for the commit sleuthing. Having it in the docs would be great, too.
Michael On Fri, Dec 18, 2015 at 2:51 PM Arthur Evans <[email protected]> wrote: > Hi Michael, > > I know a lot of folks are out on vacation so you may not get a quick > authoritative answer. So here's a semi-quick, semi-authoritative answer. > > Based on a discussion earlier this week with Steve and Kevin, I believe > that this is now the expected behavior of Polymer.dom.flush(), and I'm > planning on adding it to the documentation. > > Specifically, this feature was added in 1.0.8 in the following PR: > > https://github.com/Polymer/polymer/pull/2090 > > The feature is described in the PR, rather than being a side-effect of an > unrelated change. > > Hope this semi-answer is semi-helpful, > Arthur > > > On Wed, Dec 16, 2015 at 12:03 AM, Michael Giuffrida < > [email protected]> wrote: > >> > In general, calling `Polymer.dom.flush` provides a guarantee that >> these tasks complete synchronously. >> >> sorry to dig up an old thread, but I was poking around in Polymer 1.0.4 >> today and discovered that `Polymer.dom.flush` didn't guarantee >> `dom-if` template rendering after changing the `if` property. Instead, >> Polymer.Async >> was necessary to ensure the `if` took effect >> <http://jsfiddle.net/mnqpcqqd/1/>. >> >> `Polymer.dom.flush` does seem to work in recent versions of Polymer, but >> the fact that it was insufficient in a previous 1.0 release worries me. We >> rely on this in tests to avoid excessive async functions. I just wanted to >> clarify whether we can consider `Polymer.dom.flush` sufficient to stamp the >> template nowadays, or if it's just an implementation detail that may revert >> to 1.0.4 behavior at any time. >> >> On Mon, Jul 27, 2015 at 10:30 AM Steve Orvell <[email protected]> wrote: >> >>> For efficiency, Polymer queues dynamic changes that provoke Shady DOM >>> distribution (changes that fill insertion points, e.g. <content>) and >>> template rendering (e.g. `dom-if` and `dom-repeat`) and processes them at >>> microtask timing. In addition, the Custom Elements polyfill processes >>> dynamic dom changes (upgrading elements and calling attached/detached) at >>> microtask timing. >>> >>> In general, calling `Polymer.dom.flush` provides a guarantee that these >>> tasks complete synchronously. >>> >>> On Thu, Jul 16, 2015 at 7:25 PM, Michael Giuffrida < >>> [email protected]> wrote: >>> >>>> It would be really nice if anyone could provide a more detailed answer >>>> to this and similar questions: It's not clear what operations are supposed >>>> to be synchronous or asynchronous (and when async operations are at task >>>> level vs. microtask level), which affects tests but also some more >>>> complicated UI logic. >>>> >>>> I started a thread last week which didn't get any responses. I would >>>> appreciate even a simple "we make no guarantees" response if that's the >>>> case, because it would help knowing how defensive our code should be. >>>> >>>> Michael >>>> >>>> On Thu, Jul 16, 2015 at 4:02 PM, 'Daniel Freedman' via Polymer < >>>> [email protected]> wrote: >>>> >>>>> Generally you can get away with not using flush. >>>>> >>>>> You may still need flush for testing element lifecycle callbacks in >>>>> polyfilled browsers, or measuring DOM, but I expect very few cornercases >>>>> like that. >>>>> >>>>> On Thu, Jul 16, 2015 at 10:46 AM, <[email protected]> wrote: >>>>> >>>>>> With Polymer 1.0, observers are now evaluated synchronously. If I >>>>>> have an element whose behavior is driven by observers on attributes, and >>>>>> everything appears to work in synchronous tests, is there any reason to >>>>>> call flush()? That is, is it necessary that I call it before/after each >>>>>> test? >>>>>> >>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Polymer" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/polymer-dev/adc4db0a-459d-4abf-ab8f-6453dae62213%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/polymer-dev/adc4db0a-459d-4abf-ab8f-6453dae62213%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Polymer" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/polymer-dev/CAAUAVAhtWUNOMEw8Zm2Nq5JVA0Q4ihDEtgPJ4pDjRVqZHk1ENA%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/polymer-dev/CAAUAVAhtWUNOMEw8Zm2Nq5JVA0Q4ihDEtgPJ4pDjRVqZHk1ENA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Polymer" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> >>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/polymer-dev/CACi5S_1DeF4B%2BkgPzwpW8rt%3DH1dw%2B2%3D1C_BbGqgdzuD5ZtPpQw%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/polymer-dev/CACi5S_1DeF4B%2BkgPzwpW8rt%3DH1dw%2B2%3D1C_BbGqgdzuD5ZtPpQw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>> >>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >> --- >> You received this message because you are subscribed to the Google Groups >> "Polymer" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/polymer-dev/CACi5S_2OG5_0DEBLdBUexZ%3DjY3UT-4x7hR8YQvr1SeQnkg5JBA%40mail.gmail.com >> <https://groups.google.com/d/msgid/polymer-dev/CACi5S_2OG5_0DEBLdBUexZ%3DjY3UT-4x7hR8YQvr1SeQnkg5JBA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . > > >> For more options, visit https://groups.google.com/d/optout. >> > Follow Polymer on Google+: plus.google.com/107187849809354688692 --- You received this message because you are subscribed to the Google Groups "Polymer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/polymer-dev/CACi5S_0k_5eTNFTnXasf%2BHhdgUm9_PByQP3y6pQDyonqh-q%3DKQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
