Ahhh, the sweet feeling of freedom. Today is my first day back at work (in person) in three weeks, and to celebrate, I’m going to a meet up tonight in Los Altos. Hey, you celebrate your way, I’ll celebrate mine :).
Seriously, though, I’m excited about tonight’s topic, and specifically from a testing perspective.
NOte: this entry is shifting into “Live Blog” mode now. That means please feel free to refresh if you want to get updates of what’s going on. If you see “End of Session”, you’ll know I’m done ;).
San Francisco & Silicon Valley Web performance Group
Large sites have made the decision to move their rendering back to their servers, and it not only has increased performance, but it’s also given better SEO and indexing to the sites as well. Progressive enhancement made sense once upon a time, and more and more people are coming back to that same idea.
After Page Load
jQuery 1 is about 90K unzipped. jQuery2 is roughly the same, YUI, and Dojo are similarly sized. Loading the libraries takes upa a lot of space. There are economies of scale that can be leveraged, but over time, the library code that is used vs what’s actually loaded becomes a very large delta. Over time, the Library grows. Component code that is performant and responsive, but expensive to develop, drops when the options are encapsulated in a library. The danger is that the Library coe, over time, become more prevalent, and loads up and takes up memory when most of the code will never be used. Think of tabs. What do you spend every time you load and navigate a site with dynamic tabs? The answer is “quite a lot, if left to its own devices”, specifically 120K for each page. Just to have the tabs present. Think there might be room for improvement? If Nicholas is to be believed (and I do), then the library dependency can be reduced by up to 95%. How can we do that?
The Big Question
Servers are good at cobbling together pages. Let the server do it. Let the server do redirection. Don’t have the browser do that when you can avoid it. Browser interactions are sweet and juicy, but they re also very slow by comparison.
Create script nodes for the areas where you really need to call up special actions. look to make them happen when key events trigger them. Don’t just load everything by default (again, analytics can tell you a lot 🙂 ).
As always, there are tradeoffs to the choices we make. Recalculating things on the page are pricey, and
End of Session.