-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 I found this to be quite interesting not sure if there are any plans for implementing it. The problem In a regular Multi Page Interface (MPI) website, each page has a unique URL. These URLs can be used to bookmark your location, and the browsing history is just a list of those URLs in the order you visit them. An AJAX application however has a single URL: its contents are dynamically included into the same page. So we have to find a way to update the URL on the fly to reflect this, without reloading the entire application. In addition to that, bookmarks are based on a page navigation concept. In an AJAX application however, the visible content of a page is determined dynamically based on the user input, and this may not always correspond to simply navigating to new content. For example, consider an application which shows an overview of products based on filtering criteria. This would not consist of different pages, but products are simply hidden immediately after the user applies new filters. Still, it''s very useful for the user to bookmark the current state of the application, so it is desirable for the applications to offer that ability. - ------------- The solution to the first half of the problem lies in using another part of the URL to bookmark a location in a Single Page Interface: the fragment identifier. The fragment identifier is the string that appears after the # mark, and this part can be updated dynamically without reloading the page. When the fragment identifier is updated, the browser also adds this to its history. So with the same mechanism you can also automatically create support for the back and forward buttons, and cause the application to behave just like a regular MPI website; you can use your history, bookmark pages, link to pages, and reload them without hassle. Based on this fragment identifier, the application can determine how to act. Everything that you can normally use as GET parameters in an URL, you can put in the fragment identifier as well. The fragment identifier can for example contain the location of the content you are currently looking at, or the coordinates on a map (think: Google Maps). The difficulty here is that it is quite hard to get this working on all browsers. There is no standardised method to do this, and the code involved is complex, containing a fair amount of browser-specific code. An abstraction layer is needed, which offers the functionality of setting and reading bookmarks in an intuitive and easy-to-use manner, yet provide the flexibility that is needed for applications. -----BEGIN PGP SIGNATURE----- Version: PGP Desktop 9.0.1 (Build 2185) iQEVAwUBQxabm6KXvLS903/FAQqgEQf+K/WXKJhPZNDCpvXXPTb1Sc8QMQ+obw5z /2quQ+DoAmymxtpGlH8F/kmaAaZ84X6v3yp5Vx0tBGgzQqmP9AivAQpfXWRkpqK0 tEUUgVQS/x5JoXFl8nVDi5/9/Y4yDde0cnLdtyUWY180v8ABNKRQA2xyq+zdjSDZ gi3D8p2dcixHXR6WGfV9lgLAwmV1w9F7I0Wqt2QqN4Plx5JrOmq67ApQJv9OouPd YWM6q0T5YKcWs5aucWzRLYJ3MTidnNFEIq0xRZKl8nJMTEd2vOplZINoby/itdjR /sQ44dIyrB/4SPtnVXq/gAWyS9CQ8z36kPw98I4XlLpOqlZX/fnW7A==B66d -----END PGP SIGNATURE-----