【发布时间】:2011-08-24 11:43:10
【问题描述】:
如何使用 AJAX 保存历史记录,就像 github 或 google+ 一样。我使用 jQuery,但我不想使用 # 和 #! 之类的 hack!技巧,因为如果我这样做了,我将需要改变我的整个项目并使我的生活变得更加复杂?
【问题讨论】:
标签: javascript ajax history
如何使用 AJAX 保存历史记录,就像 github 或 google+ 一样。我使用 jQuery,但我不想使用 # 和 #! 之类的 hack!技巧,因为如果我这样做了,我将需要改变我的整个项目并使我的生活变得更加复杂?
【问题讨论】:
标签: javascript ajax history
Github 和 Google+ 正在使用 history.pushState。
您可以像这样更改当前网址:
history.pushState(null, null, '/the-new-url');
Firefox、Chrome、Opera、Safari 支持此功能;不是 IE。
【讨论】:
对于 AJAX 和历史,基本上有两种选择。
# 方法(这不是 hack 顺便说一句)。由于您不想要那个,因此您只剩下选项 2。
使用 PushState。这就是 Facebook、GitHub 和其他一些人使用的。但并非所有浏览器都支持它,如果您想要完全的跨浏览器兼容性,您将不得不使用可以降级到选项 1 的系统。
实现这一点的一个非常简单的方法是 Backbone.js 路由器类。
【讨论】:
a simple jQuery hashchange plugin 旨在解决这个特定问题。
我没用过;我不知道它是如何跟踪 url 历史的。
【讨论】: