保存在浏览器历史记录中的 Ajax 请求

Dav*_*vid 5 javascript

有没有一种简单的方法可以将 ajax 请求保存到浏览器的历史记录中,这样当您使用后退按钮时,它将保留 DOM 的最后状态?

使用 ajax 寻呼机的 twitter 和 digg 等网站存在可用性缺陷,如果您多次单击下一页,然后单击离开站点,然后使用后退按钮返回,您将失去在视口中的位置,因为 DOM 已恢复到第一个初始请求。

我注意到 safari 在某些站点上发出一些 ajax 请求后实际上保留了 dom。
这是一个示例,转到http://13gb.com,单击下一步,然后单击图像,然后单击后退按钮。在 webkit 上,它保留了最后的 DOM 状态,但在 gecko 上,即它没有。

在其他浏览器上复制此功能的最简单方法是什么?

小智 3

我不是第一个解决此类问题的人。我从几个地方汲取了灵感和专业知识来启动并运行它:

Flash 开发人员使用了一段时间的原始书签/后退按钮修复:

http://robertpenner.com/experiments/backbutton/flashpage.html

我实际上并没有研究过他们是如何实现他们的解决方案的,但这就是我想到用 iframe 替换 Robert Penner 的框架的地方:

http://dojotoolkit.org/intro_to_dojo_io.html#so-about-that-thorny-back-button

Rich Rutter 使用哈希来添加书签:

http://clagnut.com/sandbox/slideshow.html#5

在这个小实验中,我使用了 Harry Fuecks 的 JPSpan

这是一个非常棒的框架,它使您在服务器端 PHP 类中定义的方法可以通过 XmlHttpRequest 供 Javascript 使用。

这是我遇到的开始使用 AJAX 的最简单方法。我在大约 10 分钟内就完成了演示并运行!我正在使用算法的 Timer 对象:

http://codingforums.com/archive/index.php/t-10531.html

Scott Andrew 的跨浏览器事件处理程序: http://scottandrew.com/weblog/articles/cbs-events

资料来源:http ://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps

对于 jQuery: /sf/ask/8151251/