eviltrout / ember-cloaking

Support for not rendering offscreen views in an Ember app for performance
MIT License
294 stars 29 forks source link

Glimmer and ember-cloaking #42

Open graffuerchterlich opened 9 years ago

graffuerchterlich commented 9 years ago

Hey!

I'm curious if ember-cloaking works with Ember 1.13.0 and Glimmer. Can I integrate it with my app, if I'm on Glimmer? Will I see any performance gains or is Glimmer fast enough to render lists of reasonable size?

Thanks for information :smiley:

eviltrout commented 9 years ago

I have yet to try it out! We have a bunch of work to finish on Discourse before we can move to Glimmer.

rsutphin commented 9 years ago

You might want to look at runspired/smoke-and-mirrors. Its occlusion-collection is like ember-cloaking and there's work in progress to get it going with Glimmer.

Will I see any performance gains or is Glimmer fast enough to render lists of reasonable size?

As I understand it, no. Glimmer improves performance for updates. If you just have a big list that's slow to scroll because it's so long, Glimmer won't help very much. But I don't know for sure — I'm still in the process of upgrading my app to try out Glimmer.

runspired commented 9 years ago

@rsutphin @graffuerchterlich correct, long lists / heavy amounts of DOM still benefit greatly from occlusion (removal of DOM elements that are off screen). The vertical-collection in smoke-and-mirrors works with Glimmer.

Glimmer also improves initial render significantly due to the removal of many of the virtual-view layers, both initial and subsequent renders will improve significantly again post ember 2.0 as the view layer is removed entirely.

I suspect ember-cloaking will have a hard time converting to Glimmer. ContainerView and CollectionView both took a feature hit in 1.13, and will again in 2.0, especially around controlling child views. I'm not sure continuing with them will work at all starting at 2.0.

If you decide to try out smoke-and-mirrors, there's still a decent amount of churn (that will slow down with the 0.3 release coming soon). The APIs are nearly locked, and feature compatibility with ember-cloaking and scrollable divs is 1:1. I discourage using it for scrollable body elements, but a separate solution that works better with scrollable body is coming soon.