javascript - AJAX 和浏览器后退按钮

标签 javascript html ajax navigation

我在 www.darknovagames.com 上运行基于浏览器的游戏。最近,我一直致力于用 CSS 重新格式化网站,试图让其所有页面都按照 HTML 标准进行验证。

我一直在尝试将导航菜单放在左侧的 AJAX 页面中(而不是每次都将用户带到一个单独的页面,需要重新加载标题和导航栏,这几乎从不改变) 而且我知道如果我这样做,我可能会破坏浏览器中的前进/后退按钮。我想我的问题是,我应该继续对网站进行 AJAX,从而要求用户使用网站导航来玩游戏,还是应该让网站保持现状,并使用标准超链接和其他内容进行导航?

我想我问的原因是我在站点中构建了一个论坛系统,很多时候我想将 say 链接到论坛中的特定主题。

我也乐于接受建议。是否有一种标准(最好没有传统框架)的方式来仅重新加载站点的正文区域,同时仍然更改 URL 以便用户可以添加书签和转发/返回等?这也可能解决我的问题。我只是在这里寻求最佳解决方案,而不是针对特定问题的答案。 ^_^

谢谢

最佳答案

将 ajax 用于需要更新的页面部分,而不是整个页面。为此,您应该使用模板。

如果您仍想为页面上的各种状态更改保留后退按钮,请将它们与 #achors 组合以更改 url(无需强制浏览器发出另一个 GET)。

例如,gmail 看起来像这样:

mail.google.com/#inbox/message-1234

# 之后的所有内容都是通过 ajax 发生的页面状态更改。如果我按返回键,我将再次转到收件箱(同样,没有其他浏览器 GET)

关于javascript - AJAX 和浏览器后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/163610/

相关文章:

javascript - 对同一个幻像实例使用两次 createPage()

javascript - jQuery 两个选项卡容器使用相同的代码,如何仅在单击的容器内执行事件?

html - 在曲线中显示 html 列表

javascript - 删除表格单元格,而下一行的单元格填充该位置

asp.net - 如何在asp.net core中的ajax中加载部分 View

javascript - 为什么我无法使用 Chrome 查看/调试加载了 jquery.html() 的 javascript

javascript - jQuery - AJAX 调用后,旧元素仍然存在于 DOM 中?如何去除?

javascript - 应该如何验证从 SSR 到 Feathers JS API 的请求?

javascript - 如何使用 aframe 创建 360 视频效果?

html - 如何使 div 中的文本在 HTML 中降低不透明度