app/assets/javascripts/lazy_render.js in lazy_render-0.1.3 vs app/assets/javascripts/lazy_render.js in lazy_render-0.2.0

- old
+ new

@@ -8,38 +8,46 @@ var param = { name : $(this).data('lazy-render-name'), locals : $(this).data('lazy-render-params'), cache : $(this).data('lazy-render-cache'), version : $(this).data('lazy-render-version'), - callback : $(this).data('lazy-render-callback') + callback : $(this).data('lazy-render-callback'), + parallel : $(this).data('lazy-render-parallel') }; if (param['cache']) { var cache = LazyRender.cache_read(param['name'] + $(this).attr('data-lazy-render-lazy_renders'), param['version']); if (cache) { LazyRender.apply(this, param, cache); return; } } - lazy_render_elms[lazy_render_elms.length] = this; - lazy_renders.push(param); + if (param['parallel']) { + LazyRender.request([param], [this]); + } else { + lazy_render_elms[lazy_render_elms.length] = this; + lazy_renders.push(param); + } }); + if (lazy_renders.length > 0) LazyRender.request(lazy_renders, lazy_render_elms); + }, + request: function(params, positions) { $.ajax({ - type : 'post', - url : '/lazy_render/load', - data : { - lazy_renders : lazy_renders, + type : 'post', + url : '/lazy_render/load', + data : { + lazy_renders : params, referrer : document.referrer ? document.referrer : '' }, beforeSend : function (jqXHR, settings) { jqXHR.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); }, - cache : false, - dataType : 'json', - success : function (result) { - $(lazy_renders).each(function (i, lazy_render) { - LazyRender.apply(lazy_render_elms[i], lazy_render, result[i]); + cache : false, + dataType : 'json', + success : function (result) { + $(params).each(function (i, lazy_render) { + LazyRender.apply(positions[i], lazy_render, result[i]); if (lazy_render['cache']) { - LazyRender.cache_write(result[i], lazy_render['name'] + $(lazy_render_elms[i]).attr('data-lazy-render-lazy_renders'), lazy_render['version'], lazy_render['cache']); + LazyRender.cache_write(result[i], lazy_render['name'] + $(positions[i]).attr('data-lazy-render-lazy_renders'), lazy_render['version'], lazy_render['cache']); } }); } }); },