Javascript AJAX和后退按钮

Javascript AJAX和后退按钮,javascript,ajax,history,Javascript,Ajax,History,如何使用AJAX保存历史,就像github或google+那样。我使用jQuery,我不想使用像#和#这样的黑客!诀窍,因为如果我这样做了,我需要改变我的整个项目,让我的生活变得更加复杂?Github和Google+正在使用 您可以按如下方式更改当前url: history.pushState(null, null, '/the-new-url'); Firefox、Chrome、Opera、Safari都支持这一点;不是我 请参见对于AJAX和历史,基本上有两种选择 #方法(顺便说一句,它不

如何使用AJAX保存历史,就像github或google+那样。我使用jQuery,我不想使用像#和#这样的黑客!诀窍,因为如果我这样做了,我需要改变我的整个项目,让我的生活变得更加复杂?

Github和Google+正在使用

您可以按如下方式更改当前url:

history.pushState(null, null, '/the-new-url');
Firefox、Chrome、Opera、Safari都支持这一点;不是我


请参见

对于AJAX和历史,基本上有两种选择

  • #方法(顺便说一句,它不是一个黑客)。既然你不想要那个,你只剩下选项2了

  • 使用PushState。这就是Facebook、GitHub和其他一些公司所使用的。但并不是所有浏览器都支持它,如果您想要实现完全的跨浏览器兼容性,则必须使用可降级为选项1的系统

  • 实现这一点的一个非常简单的方法是Backbone.js路由器类。

    有一个专门用于解决此特定问题的类


    我没有用过它;我不知道它是如何跟踪url历史记录的。

    这个方法非常有技巧。片段标识符的作用是链接到文档的特定部分,而不是告诉JavaScript从哪个URL获取数据,通过Ajax填充页面的各个部分。是的,如果我们真的很挑剔和严格,这是最初的预期用途,但由于它得到了广泛的支持和使用,我更愿意称之为“巧妙地运用力学”而不是“黑客”,我认为这听起来太消极了。我认为“黑客”确实如此。在这种情况下,这个词的意思是“将某物用于其预期目的以外的目的”,这正好符合这一点