javascript - 单击浏览器后退按钮返回到 ajax 页面并使其看起来相同吗?

标签 javascript ajax back-button

我尝试对各种 jquery 历史记录插件进行一些研究,但我找不到任何适合我情况的示例,所以我开始认为也许我想做的事情是不可能的。

我们有一个非常复杂的搜索页面,通过 ajax 进行更新。用户使用大量选项进行搜索,然后返回一个结果列表,可以对其进行排序、分页等。然后,如果他们单击其中一个结果,系统会将他们导航到另一页面以查看详细信息。但是,如果他们单击“返回”,则不会返回到所有 ajax 和 javascript 更新后页面的显示方式。他们看到的搜索页面没有任何结果。

我希望在他们离开之前我可以通过添加哈希来提取某些内容,或者使用 jquery 历史记录插件之一来实现类似的功能,这样当他们单击“返回”时,就不会重新加载 搜索页面,但只会向他们显示缓存版本(当他们单击其中一个结果时最后的外观)。

据我所知,我发现的 ajax 和后退按钮的大多数示例都使用散列值来告诉页面如何自行排列,甚至允许为包含散列的页面添加书签。我认为对我来说,这意味着我基本上必须将搜索页面中的所有内容序列化为哈希值,这似乎不实用,除非我完全误解了它的工作原理。

有人知道这是否可行吗?

最佳答案

至少两种方法可以实现您想要的功能:

  1. “经典”- 将所有用户搜索选项存储在 cookie 或 session 中,例如“上次搜索”。因此,当用户在 session 期间导航到搜索页面时,您可以读取 cookie/ session 并使用该选项显示最后的搜索结果。
  2. “现代”方式 - 使用 HTML5 history API - 在每个搜索上形成一个搜索选项对象,并通过history.pushState将其推送 - 当用户导航到其他页面然后按“后退”时,浏览器将使用此状态来执行搜索。

关于javascript - 单击浏览器后退按钮返回到 ajax 页面并使其看起来相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21411943/

相关文章:

ajax - Extbase Ajaxdispatcher 给出错误 "The default controller can not be determined"

xaml - UWP CommandBar 后退和前进按钮未显示

javascript - HTML & jQuery - 需要下拉菜单来重叠元素

javascript - 选择菜单更改时执行以下 jquery 代码

javascript - 自动刷新包含的表格,需要检索选定的行单元格值

JQuery Ajax 基本身份验证 header 无法正常工作

javascript - 无法从客户端获取 JSON 数据

javascript - AngularJs 在重定向到新位置时更改后退按钮位置

react-native - React Native - 设备后退按钮处理

javascript - PortQry与ElectronJS Desktop App的集成