If you look closely you'll see all pages at The Elk are now pure, straight-up, and
(hopefully) fast HTML. No more slow, PHP-rendered web pages! Yay!
It's pretty obvious that rendering every web page at every viewing is inefficient and
wasteful--especially for a site that doesn't even provide dynamic content. Every viewer
sees the exact same thing, so why render it every time? Well, it was simpler in the
beginning to write it that way... A performance nightmare, the previous approach would
query the database for the requested article and render the HTML, every time. And the
worst offense about it was the "Articles" listing to the left, which caused a full table
scan of the database and an entire pull of every article to generate the nice listing you
see.
Given how slow my web hosting provider has been lately, I was motivated to change this.
Of course, the more sane route might have been to look for a new provider. But not me.
So I've converted the site into a cache of static HTML pages, and a cached article list
for the left bar. Of course, I still use PHP behind the scenes to do all of this, for
example you'll see .php pages when you post a comment. On the back end, I wrote a cache
manager to handle all the issues with cache consistency--the portions of the cache needing
an update are regenerated whenever something changes, e.g. a comment is posted, or an
article is added. Overall, it was a bit of work to do it this way, but the end result is
much cleaner and more efficient. I don't have any hard performance metrics, but overall
it does seem a little snappier.