“Dynamic content on a Web site is cool. It keeps people coming
back and creates the appearance that there are people behind the
scenes actively updating the site to provide new and improved
information. However, in the real world, you’ll regret the day you
added that SSI include directive in your homepage when you finally
do something important enough that Slashdot notices you. Running a
CGI script on every single Web hit is a great way to get your Quake
game interrupted.”
“So, what do you do? You could set up an include that pulls in a
file updated from cron. But how often? Perhaps you get hits during
the day but not so many at night, and why waste all the CPU to
update a file that won’t be examined for hours? Or, maybe you
haven’t quite figured out that arcane crontab syntax yet. Also, you
have to master the weirdness of having a script running as you
create and update a file that is readable by the Web user. Fun,
fun, fun….”
“So, a while back, I came up with a three-state caching idea.
Keep a cache of the expensive computation. For the “good” phase,
the cache is served as-is. For the “bad” phase, the computation is
performed in-line, cached, and the new value returned.”