A Static Implementation of the Navigational Controls

The display shown in Figure 7.10 contains the same docbase record and navigational controls as in Figure 7.1 but requires no server-side assistance.

Static version of docbase navigation controls

Figure 7-10. Static version of docbase navigation controls

The strategy here relies on massive precomputation of HTML/JavaScript pages. It also uses HTML frames to coordinate relationships among generated pages.

The frame-based approach confers a slight user-interface advantage over the single-window display of Figure 7.1. There the controls had to appear at the top of the page in order to occupy a constant location on-screen. But top-of-page screen space is a precious commodity, and the controls chew up a lot of it. What really belongs at the top isn’t the controls, arguably, but rather the record’s title. It contains the most salient fields of the docbase and deserves top billing. With a frameset, as shown in Figure 7.10, we can free up the top of the page for this purpose and lock the controls to a constant bottom-of-page location.

The static solution relies on the same kinds of methods we’ve already seen. There’s a per-docbase template, in this case static-navigation-template.htm, and a template processor, in this case a Docbase::Indexer method called buildStatic-Controls( ). Per-record and per-index, it writes a pair of files. The first, a frameset page, marries the raw docbase ...

Get Practical Internet Groupware now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.