IP.Dynamic rumbles on. It’s changed a lot since the first version was used on our own website. It has an installer and everything now - and it’s not red and gray anymore.
I’ve just released alpha 4 to the beta testers which includes a few important items. The first is a search engine for the articles manager. I’ve yet to tidy this up and I want to tweak it to make it more efficient - but it does a good job as-is. Naturally, I’m using the full text capabilities of MySQL although I do want to centralize all the searchable content into one table with common words, short words and HTML stripped to make the searching faster and more efficient.
The other addition is the ability to cache your entire site to HTML files. There were a lot of design problems to overcome with this and it’s still not perfect but it’s a good start. Obviously the static site reflects a guest’s visit so it’s no good if you have a very dynamic site with many member permissions although there’s no reason why you can’t use the static site just for guests and search engine spiders.
The biggest challenge was to find a way to allow a dynamic site to be cached and that’s not as easy as you think. Take the poll component for example. This enables you to create a poll to include anywhere in your site. Now, the default website has a single poll on every page as it’s included in the side-bar. This meant that each time a vote was cast, the entire website would have to be rebuilt (and our ‘test’ site has 10,000 articles spanning 65,000 pages and nearly 10,000 polls) - so this isn’t an option.
After some headscratching, I resorted to writing a few JS functions to act as an iframe include. When a vote is cast, the poll HTML is written to a HTML file and the actual HTML page that the poll appears on has an iframe which links to that HTML file.
Ideally, one would store the poll data as an XML file and use AJAX to load the XML file and populate the poll data - but I didn’t have time for that and the “iframe include” has other uses - such as IP.Board topic importing. The IPB module reloads the topic set every 15 minutes - now it adds a HTML cache file of just the imported topics and the iframe include takes care of the rest.
Of course, if you make template changes you’ll need to rebuild your entire site. There’s not much I can do about that.
Oh and “Staralfur” by Iceland’s Sigur Ros from their album “Agaetis Byrjun” album is very good.
Recent Comments