【发布时间】:2021-03-19 16:45:41
【问题描述】:
如果用户通过按浏览器的后退按钮到达当前页面,PHP 中是否有可用的指示符?
这是页面的当前设置: 用户当前通过使用基于 ajax 的过滤器的搜索或类别页面浏览网站。单击过滤器时,搜索页面的结果部分会更新,并且活动过滤器会存储在会话中。
每次用户开始新的搜索或新的类别页面时,都会发送一个带有 url 的 GET 参数,这会使网站删除过滤器。
现在的问题是,当用户应用了一些过滤器,然后单击结果然后使用返回按钮时,页面会将此视为开始了新的搜索或类别(删除过滤器),因为GET 参数仍然存在。
我的想法是以某种方式检测到用户使用后退按钮导航到当前页面,并在这种特殊情况下禁用会话重置,以便用户再次看到他的过滤结果列表。如果这可以在 PHP 代码中以某种方式实现,它会为我节省大量时间。
【问题讨论】:
-
听起来您应该在 URL 中保留过滤器设置的当前状态,以便您可以从那里读回它。关键字 HTML5 历史 API。
-
我不会在这些场景中混合使用 ajax 和 html 事件,因为您最终会遇到这种情况。您为什么不直接捕获 history.back() 来恢复您的过滤器(已加载、未隐藏,...)并避免整个访问服务器?
-
这是一个已经存在的应用程序,我不想重新编码整个页面。我希望在 PHP 代码中有一个快速简单的解决方案。我发现的基于 JS 的解决方案也很好地完成了这项工作。感谢您抽出宝贵时间。