Deep linking in AJAX applications

Now that Microsoft's MSN Virtual Earth is live, the comparisons to Google Maps have begun. The blogosphere will soon sort out the relevant differences in terms of interactive controls, map coverage, and APIs. Meanwhile I want to take note of an issue that transcends the realm of interactive maps and applies to the whole emerging AJAX space. The issue is deep linking.

Neither Google Maps nor MSN Virtual Earth records the state of a particular map view on the browser's URL-line. Google Maps hides all the parameters. MSN Virtual Earth presents only a GUID whose purpose I don't yet understand, but which doesn't record the map's state. In both cases, the stateful URL is found elsewhere than on the URL-line. Google Maps presents it directly, with a link icon and a Link to this page label. MSN Virtual Earth presents it indirectly -- clicking Permalink leads to a popup window containing the stateful URL.

The first installment of the Macromedia developer relations podcast has an excellent discussion of these emerging strategies (excerpt here). The conclusion is that while users still expect URLs to record state, AJAX applications that partially refresh pages will instead need to place the stateful URL somewhere within the page, at a location -- and using a style -- that will become well-known conventions.

That may be the right answer. But it won't be easy to establish such conventions. How many readers of blogs today, for example, understand what permalinks are, or how they're presented by the various blog publishing tools? Before we abandon the notion of an AJAX-savvy URL-line, perhaps we should take another look at what it would take to leverage the existing convention and adapt it to these new circumstances.

Former URL: