But Jon wanted more out of the experience. From his post:
If I link to the aggregator, it defaults to the Macromedia category and to Kevin Lynch’s blog. You can navigate to the Technology category, and thence to my blog, but there are no URLs exposed for these, so I can’t link from here to there. In this case it’s not a Flash issue, it’s a DHTML issue. But the principle is exactly the same. Toolkits and frameworks for building rich Internet apps ought to make support for deep linking a no-brainer for developers. It should be the rule, not the exception.
The Category Click Feed Report uses two techniques for deep linking. The first technique is based on Kevin’s RIA deep linking example in which he dynamically appends anchor names to the URL in the location bar which describe the sate of the application. Click on some different feeds in the right-hand column, and you’ll notice the URL getting updated with information the application needs to recreate the current state. This technique works well, primarily because it allows users to copy the URL right out of the location bar in order to preserve the state of the application, which is what we are generally used to doing. However, there are two disadvantages:
The second technique I used for deep linking has to do with the "Link to this report" link below the chart. This uses a technique similar to what Google Maps uses to let you link to a specific map state (they may have opted for this approach due to the issues mentioned above). Notice how the URL in the location bar never changes as you use Google Maps since the entire page is not refreshing, which means that it doesn’t give you any query string parameters to capture the state of the app. Instead, the "Link to this page" link in the upper right-hand corner changes, capturing the information needed to redraw the map in its current state.
Ultimately, I think the dynamic link technique is the better way to go even though it is currently less intuitive to users. My pediction is that this will change (partially thanks to Google), and users will soon know to look for special links to use to capture the state of an application rather than relying on the location bar. Using dynamic links is actually safer since you can be sure that the links you are sending around or posting on your site for the world to click on don’t contain session informtion that can either compromise your account on the site you are linking to, or cause the link to be invalid after the session has timed out.
I’d like to get some feedback on how I’ve incorporated deep linking into the Category Click Feed Report, and eventually, I’ll release all the code along with a tutorial. In the meantime, check out Kevin’s tutorial on the dynamic anchor technique, and feel free to view (and steal) my ource code. It is all easily accessible and readable.