AJAX和后退按钮

Nik*_*lay 2 javascript ajax history

如何使用AJAX保存历史记录只是github或google +如何做.我使用jQuery,我不想使用像#和#这样的hack!技巧,因为如果我这样做,我需要改变我的整个项目,让我的生活变得更加复杂?

Arn*_*anc 5

Github和Google+正在使用history.pushState.

您可以像这样更改当前网址:

history.pushState(null, null, '/the-new-url');
Run Code Online (Sandbox Code Playgroud)

这是由Firefox,Chrome,Opera,Safari支持的; 不是IE.

请参阅https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method


Zet*_*Two 5

在AJAX和历史方面,基本上有两种选择.

  1. #方法(这不是一个黑客顺便说一句).由于你不想要那个,你只剩下选项2.

  2. 使用PushState.这就是Facebook,GitHub和其他一些人使用的东西.但是并不是所有浏览器都支持它,如果你想要完全跨浏览器兼容,你将不得不使用一个可以降级到选项1的系统.

一个非常简单的实现方法是Backbone.js Router类.

  • #方法非常黑客.片段标识符的要点是链接到文档的特定部分,而不是告诉JavaScript从哪些URL获取数据以通过Ajax填充页面的某些部分. (5认同)