same thing over and over Rapid UI prototyping is hard No single web-technology legacy/custom web technologies LI-JSP JRuby Grails DWR YUI How to build for mobile? 7 Wednesday, June 19, 13
cached with 365d expires •< 4KB compressed •logic-less, but extensible with helpers (function() { dust.register("demo", body_0); function body_0(chk, ctx) { return chk.write("Hello World!"); } return body_0; })() The Good Parts 19 Wednesday, June 19, 13
chk.write("<div>Do you have a URL for project").reference(ct x.getPath(false, ["project", "name"]), ctx, "h").write("?</ div>");}return body_0 2 26 Wednesday, June 19, 13
key names and repetitions in the JSON • Easy to send more data than what the template needs 66 { “i18n_text_plain_0_renders_the_connection_count : “Your are connected to 4 users”, “first” : “Alfred”, “last” : “Willis”, “fullName” : “ Alfred Willis” } Hello {fullName} {i18n_text_plain_0_renders_the_connection_count} Long JSON keys Wednesday, June 19, 13
template loading, does not scale • Slow CDN combined with high browser cache-miss across different geo, particularly bad in Asia-pacific , India 67 Wednesday, June 19, 13
early • # 2 Defer rendering below the fold content • # 3 Server-side render for slow user-agents and geo regions 72 Reduce JSON size • # 1 Defer fetching below the fold JSON • # 2 Pre-prod payload lint tooling • # 3 Localized strings served via CDN cache Reduce http-requests, increase caching • # 1 Build-time dependency list instead of dynamic, async loading on above the fold • # 2 Early flush the templates for above the fold Wednesday, June 19, 13
and server Performance Unification JSON JSON + Dust Dust Site Speed 76 Site-Speed Lean payload server JS-engine Measure for engagement Improve dust.js Wednesday, June 19, 13
dust.js and V8 •Enforce leaner JSON payload size •Prefetching resources for certain use cases such as search •Evolve with the new web-standards •Move to faster CDNs across geo •Invest in intelligent ways to co-relate Wednesday, June 19, 13