PolymerElements / iron-iconset-svg

Represents a source of icons expressed as a collection of inline SVGs
https://www.webcomponents.org/element/PolymerElements/iron-iconset-svg
37 stars 34 forks source link

Delay firing iron-iconset-added until iconset fully parsed. #77

Open andrey-git opened 6 years ago

andrey-git commented 6 years ago

On Chrome a custom element constructor and lifecycle callbacks are called as soon as the tag itself is parsed, i.e. <iron-iconset-svg ... > but possibly before the child elements are parsed.

This PR handles this case by waiting for DOMContentLoaded before firing iron-iconset-added if the document is in loading state

andrey-git commented 6 years ago

Fixes #66

balloob commented 6 years ago

This PR actually fixes a problem I have with loading icon sets on demand. I really hope that we can get this fixed or addressed somehow once Polymer 3 has shipped and the elements will get some love.

On a side note, waiting for DOMContentLoaded before firing the event can be bad for performance. Imagine an iconset at the top of a page that is huge. Neat trick that I learned from AMP: it skips waiting for DOMContentLoaded if they know parsing is already done. They check this by seeing if element or any parent element has a sibling. If so, the children must have been done parsing.