Histree - Tree Explanations


There are three types of navigation (four if you count Universal Histree) that are presented by the Histree extension. The following is an explanation of how these algorithms work, so you don't get too confused. 8-)

Histree

Histree is the basic algorithm. It preserves the current Back/Forward menus, but adds a twist: If you visited a page, that entry in the Back/Forward menu will turn into a submenu. Going into it will show you the pages that previously were removed from the stack.

For example, let's say you're on page 1, then navigate to page 2, then go back to page 1 and navigate to page 3. With the regular Back menu, you can no longer get to page 2 (your Back menu will simply allow you to go between 1 and 3). Using Histree, however, page 1 turns into a submenu. Open it and there's page 2 again! You can continue to go to all the pages you visited from page 2 (if you visited any pages there).

Histree Image

There are two options associated with Histree. The first, "Per-tab" or "Universal", changes the essential way Histree works. "Per-tab" is the usual behavior - each tab and window has its own Back/Forward menu associated with it. However, a Universal Histree has only one single navigation history; opening a new tab will simply add a new link to the navigation history, rather than creating a new one! However, each tab and window has its own path within the navigation.

For example, let's say you go from page 1 to 2, then open a new tab which loads page 3. You now have a history that contains a link from 1 to 2 and a link from 2 to 3. However, the first tab is still on page 2, whereas the second tab is now on page 3. Your usual Back menu will remain and allow you to use it normally - the only difference is that you now have access to every page you visited in other tabs or windows as well!

The second option, "histree depth", indicates how smart you want Histree to be. Histree can tell if you took a path with no offshoots - for example, you could be at a "hub" where you clicked three different pages, but at each of those pages, you only clicked once or twice and went back. Histree can display all the paths at once, meaning you won't have to go through three different submenus to see them all. But this can get crowded, so you can set how many pages Histree should check for in a single menu.

FamilyTree - Type 1

FamilyTree (admittedly a bad name for it) is markedly different from Histree. It'll be easier for me to talk about it in terms of nodes, parents and children. For my purposes, a node is any page you visit1.If you click a link from node A to node B, node A is a parent of node B, and node B is a child of node A. Any node can have many children, but also many parents!

Here's the main way FamilyTree differs from Histree. Histree is, as it sounds, a tree - it starts from a root and spreads out its leaves. That means, however, that there can be duplicate entries. FamilyTree, however, is technically a graph - since it allows one node to have many parents, it's all interconnected rather than having one starting point.

As a quick illustration, let's say you start at page A, then click to page B, then to page C, then follow a link from page B back to page A. Histree will think of it like this:

Histree Image

FamilyTree, though, will think of it like this:
FamilyTree Image

So how does that translate to your Back menu? FamilyTree Type 1 will actually give you a "most-recently-visited" list. That means that it'll simply list the 15 most recently visited pages. From each of those pages, you can open a submenu which will tell you a) the parents of that page, and b) the children of that page. You can then open more submenus to see the parents and children of further pages. This eliminates duplicates and ensures you can always see everywhere you've been from a given page, and every way you've gotten to that page. The downside? You'll have to open more submenus to get to the page you want. There's also no Forward menu to speak of, even though the Back and Forward buttons work like usual.

FamilyTree - Type 2

Unlike its Type 1 cousin, Type 2 retains the original Back/Forward menus. Other than that, it's identical.



1. Note that some pages may have different content at different times - so in actuality a node is really a unique page visit as determined by URL, frameset, and POST data. All right, I lied, I should be checking the frameset, but I didn't. Sorry.