Thursday, 15 January 2015

ruby on rails - Load Only Part of an Ember App at Once -



ruby on rails - Load Only Part of an Ember App at Once -

i building ember app , starting large. there way lazy loading of ember files take 10+ seconds load when user first hits site? illustration since have several logically separate modules part of site, load modules accessed. using ruby on rails , ember-rails gem.

if think ember doing render code, can understand why slow. suppose you're creating 2k view instances, , rendering 2k templates. templates part doing little. if don't care info binding.

for first stab, let's stop rendering through templates. code uses itemviewclass render each item custom view instead of view used internally each.

// utilize {{each item in items itemviewclass=app.spanview}} app.spanview = em.view.extend({ render: function(buffer) { buffer.push("<span>"+this.get('content')+"</span>\n"); } });

jsbin: http://jsbin.com/enapec/35/edit66

with render over-ridden, need interact render buffer ourselves.

even faster getting rid of view entirely. think there 2 ways this. create custom view render method loops on items, , pushes each element onto buffer. think given previous illustration can going yourself.

another simple alternative utilize helper. dumb helper more hard wire re-rendering when list changes, right solution.

// utilize {{eachinspan items}} em.handlebars.registerboundhelper('eachinspan', function (items) { homecoming ( new handlebars.safestring( items.map(function (i) { homecoming '<span>'+i+'</span>'; }) ) ); });

live jsbin: http://jsbin.com/enapec/34/edit

lastly, in jquery didinsertelement , afterrender queue. don't recommend though.

ember.renderbuffer gathers info regarding view , generates final representation. ember.renderbuffer generate html can pushed dom.

fyi here renderbuffer api

defined in

module : ember-views

i new bee got resource. thanks.

ruby-on-rails ember.js

No comments:

Post a Comment