views:

65

answers:

1

I have encountered many web sites and even desktop applications that have a breadcrumb type control to navigate pages of information.

For example, given X pages where the user is currently on page N, SOFU has a bread crumb control that presents page navigation in the form of:

(X[N-1])(X[0])...(X[N-2])(X[N-1])(X[N])(X[N+1])(X[N+2])...(X[X-1])(X[N+1])

I have seen all sorts of variants of this control. What I am wondering is there a way to optimize this sort of control so the user can navigate to any page of data in a minimum number of jumps. I know there are obvious answers like allow the user to specify a page number or hand enter a url, but I am thinking of a more academic solution where the alternatives are not available.

I am not very bright and suck at math. Any ideas where to even start without brute forcing a solution?

+1  A: 

You might add links for pages in the fibonacci sequence from the current page to the start and end of the sequence, like so:

(X[0])...(X[N-8])...(X[N-5])...(X[N-3])(X[N-2])(X[N-1])(X[N])(X[N+1])(X[N+2])(X[3])...(X[N+5])...(X[N+8])...(X[X-1])

I think that would give you a good ratio of links to space, but it'll still take plenty of space. If that's not good enough, you should think about how specifically your users know the page they want and how many page links you can offer them/they can tolerate.

Pete
The optimal way to get to any page is just presenting a link to each. The optimal way to get there with the least amount (or any fixed amount) is to provide them choices between a few ranges of pages, and then narrowing the selection down whenever they select a range.While the details depend on where your user wants to move from each page, I'm confident you want something that provides them likely choices while allowing them to skip ahead if they're looking for a specific page, while listing as few as possible. That implies an accelerating sequence, like the Fibonacci, or alternatively N+i².
Pete