AJAX 和后退按钮
我如何使用 AJAX 保存历史记录,就像 github 或 google+ 所做的那样。我使用 jQuery,我不想使用像 # 和 #! 这样的 hack。技巧,因为如果我这样做,我将需要改变我的整个项目并使我的生活变得更加复杂?
How can I save history with AJAX just how github or google+ do. I use jQuery and I do not want to use some kind of hack like the # and #! tricks, because if I do, I'll need to change my whole project and make my life much more complicated?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Github 和 Google+ 正在使用
history.pushState
。
您可以像这样更改当前 url:
Firefox、Chrome、Opera、Safari 支持此功能;不是IE。
请参阅 https://developer.mozilla.org/en/ DOM/Manipulate_the_browser_history#The_pushState%28%29.c2.a0method
Github and Google+ are using
history.pushState
.You can change the current url like this:
This is supported by Firefox, Chrome, Opera, Safari; not IE.
See https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method
谈到 AJAX 和历史记录时,基本上有两种选择。
# 方法(顺便说一句,这不是黑客)。因为你不想要那个,所以你只剩下选项 2。
使用 PushState。 Facebook、GitHub 和其他一些公司都使用这种方式。但并非所有浏览器都支持它,如果您想要完全的跨浏览器兼容性,您将必须使用可以降级为选项 1 的系统。
实现此功能的一个非常简单的方法是 Backbone.js Router 类。
There are basically two options when it comes to AJAX and history.
The # method (which isn't a hack btw). Since you don't want that one you only have option 2 left.
Use PushState. This is what Facebook, GitHub and a few others use. It's not supported by all browsers though and if you want complete cross-browser compatibility you will have to use a system which can degrade to option 1.
A very simple way to implement this is Backbone.js Router class.
有一个一个简单的 jQuery hashchange 插件 旨在解决这个特定问题。
我没用过;我不知道它如何跟踪 url 历史记录。
There is a simple jQuery hashchange plugin that is designed to solve this specific problem.
I haven't used it; I don't know how it keeps track of the url history.