The Khan piece is really good. Lots of interesting stuff in there. One thing that stuck out at me is the sheer amount of JS they have (2.4MB). Smaller, cacheable files might be a decent tradeoff for them.
Supporting both http 1.1 and http 2 users has come up recently, but I’m not sure how long we’ll need to do that (if at all). Personally, I think the problem is more server support than browser support. For example, that Khan post cite’s http2 support at 60% (November 2015). It’s now at 76%! And that doesn’t include other popular browsers used in other parts of the world (Samsung). Pretty good in just a year. Ulimately, as you say, it’s tricky. But I do think everyone should measure their own user-base and make technology decisions based off that. There’s lots of interest in supporting the next billion users, but it may not be worthwhile for some sites.
Another wrinkle: lots of users in countries with low-end hardware and 2g networks use a proxy browsers (UC Browser and Opera Mini). Whether you should support http1.1 or http2 may not even matter.
I’m genuinely curious to see how much improvements HTML imports + HTTP/2 can actually offer over the bundle split solution
Me too! There’s a bunch more demos/data/research that needs to be done in this area. Not only with HTML Imports, but with today’s module loaders, and eventually ES6 modules. I think we (Chrome team) are going to start investigating this area a bit more. It’s a hot topic right now.