It’s no secret that one of the keys to a decent user experience is a responsive (fast) user interface. And the most critical component to a fast web app is minimizing the HTTP requests. So it’s no mystery that people are working on ways to solve this problem.
Firefox, of course, is one of the leaders in this area. Their proposal started out fine. Here’s a sample of what it would look like (if you didn’t read the article):
<link rel="resource-package"
type="application/zip"
href="/static/site-resources.zip"
content="javascript/jquery.js;
css/reset.css;
css/grid.css;
css/main.css;
images/save.png;
images/info.png" /> |
<link rel="resource-package"
type="application/zip"
href="/static/site-resources.zip"
content="javascript/jquery.js;
css/reset.css;
css/grid.css;
css/main.css;
images/save.png;
images/info.png" />
You specify that the file, /static/site-resources.zip”, contains the listed resources. JavaScript, CSS, and images. (I imagine SWFs and videos would also be options.)
But for some reason, this concise, nearly-valid implementation was trashed in favor of a terse, unfamiliar, and nearly unusable alternative. Here’s what the spec looks like now:
<html packages='[pkg1.zip img1.png script.js styles/style.css]
[static/pkg2.zip]'>
</html> |
<html packages='[pkg1.zip img1.png script.js styles/style.css]
[static/pkg2.zip]'>
</html>
In this bastardization, the packages are specified as an attribute on the document element (<html>
tag). Package definitions in the packages
attribute are delimited by square brackets, and the resources within them are delimited by spaces.
WTF? Not only is this ugly and non-standard, but it also has some serious drawbacks. Here’s why:
Continue reading →