Dojo Mobile 1.7 has a simple bookmarkable functionality based on dojo.hash. If you require dojo.hash in your application, the function is enabled. If a transition destination value (the value of the moveTo property) has a hash sign ('#') before the id (e.g. #view1), the view transition updates the hash in the browser URL so that the user can bookmark the destination view. Also, in this case, the user can use the browser's back/forward button to navigate through the views in the browser history.
As you can imagine, this can support only a simple navigation between the top level sibling views. It cannot support more complex UI layout scenarios such as nested views, splitted views, or dynamically created views, because the hash fragment value is only a single identifier.
To mitigate this limitation, the bookmarkable function has been enhanced to be able to manage multiple view state. The new bookmarkable is enabled if you require dojox.mobile.bookmarkable. When you made a view transition, dojox.mobile searches for all the selected views in the page, and sets a new fragment id that consists of a comma-separated list of the found views to the browser's current URL. When you move back to this page, dojox.mobile sees the list of selected views and restore the selected state. Note that 'selected' does not necessarily mean the view is 'visible'. For example, there may be a currently hidden view that has child views. One of the child views must be 'selected', but it is not 'visible' since its parent is currently hidden. Sibling views always have one and only one selected view.
With this enhancement, the bookmarkable function should be able to handle cases where views are nested or split. However, it cannot support dynamic views created by the ListItem and other _ItemBase-based item's url property. Even if the created view's IDs are pushed to the browser URL's fragment id, dojox.mobile can never know URL of the external content from its view id.
Another small enhancement is that if you set mblForceBookmarkable:true to djConfig, and require dojox.mobile.bookmarkable, all the view transitions are stored in the browser history regardless of whether the value of moveTo has '#' prefix or not.