Queridos Developers, <br>
<br>

Neither Chris nor I seems able to recollect the specifics of our
previous <br>
conclusions for the browser history problem, so I decided to go back to <br>
the
web to see what is out there. So I spent all afternoon and now all night <br>
doing further research on the problem, and I have found a lot of interesting <br>
material out there. Two solutions seemed to catch my eye in particular:<br>
<br>
The first is from one Brad Neuberg who seems to be one of the first to solve <br>
this problem, back in October of 2005. He published a series of blog <br>
entries [1] [2], which later turned into a JavaScript library called RSH [3] and a <br>
companion O&#39;Reilly Article [4] on how to use it to solve this problem.<br>
<br>
The second, which surfaced a good year and a half after Brad&#39;s posts, is the <br>
Yahoo Browser History Manager [5]. The workings of the library and the <br>
rationale behind its creation are explained in plain english in a blog <br>
entry [6] by its author, Julien Lecomte.<br>
<br>
Reading that entry led me to the Google Web Kit&#39;s solution [7], which caught<br>
my eye for all of about 90 seconds, by which point I had arrived here [8] and <br>
quickly closed the browser window in the middle of an exhaled &quot;whoa nelly&quot;.<br>
<br>
So basically, after spending several hours reading through the code for RSH <br>
and the YUI BHM, I feel like I have a pretty good grasp on the issues and the <br>
generally accepted techniques for solving them. <br>
<br>
One major sticker which differentiates the two libraries is Safari. In a nutshell, <br>
due to accepted bugs in the browser, the only way to provide true history <br>
support on Safari is by using a rather complicated hack. It is not impossible, <br>
but it is far from simple. The question we must ask ourselves is whether or <br>
not supporting history in Safari is worth the hassle? <br>
<br>
Otherwise, it seems to me that what we are going to need to do is something<br>
along the lines of the YUI approach, albeit simpler (using generic map <br>
serialization/deserialization in lieu of the rather more complicated modules) <br>
<br>
If anyone has any experience with the YUI or other browser history libraries, <br>
please speak up. Any other opinions on what I&#39;ve written above are also, of<br>
course, very welcome. <br>
<br>
Bona Nit, <br>
Erik<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
[1] <a href="http://codinginparadise.org/weblog/2005/09/ajax-how-to-handle-bookmarks-and-back.html">http://codinginparadise.org/weblog/2005/09/ajax-how-to-handle-bookmarks-and-back.html</a><br>
[2] <a href="http://codinginparadise.org/weblog/2005/09/ajax-history-libraries.html">http://codinginparadise.org/weblog/2005/09/ajax-history-libraries.html</a><br>
[3] <a href="http://www.onjava.com/onjava/2005/10/26/examples/framework/dhtmlHistory.js">http://www.onjava.com/onjava/2005/10/26/examples/framework/dhtmlHistory.js</a><br>
[4] <a href="http://www.onjava.com/pub/a/onjava/2005/10/26/ajax-handling-bookmarks-and-back-button.html?page=1">http://www.onjava.com/pub/a/onjava/2005/10/26/ajax-handling-bookmarks-and-back-button.html?page=1</a><br>
[5] <a href="http://developer.yahoo.com/yui/history/">http://developer.yahoo.com/yui/history/</a><br>
[6] <a href="http://yuiblog.com/blog/2007/02/21/browser-history-manager/">http://yuiblog.com/blog/2007/02/21/browser-history-manager/</a><br>
[7] <a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.user.client.History.html">http://code.google.com/webtoolkit/documentation/com.google.gwt.user.client.History.html</a><br>
[8] <a href="http://code.google.com/webtoolkit/overview.html#Why">http://code.google.com/webtoolkit/overview.html#Why</a><br>