我熟悉使后退按钮在各种情况下在 AJAX 应用程序中工作的几种方法,但我还没有找到可以在我的特定场景中正常工作的解决方案。
我正在使用的页面是网站的搜索界面。您在普通搜索框中输入术语,单击“开始并在搜索结果页面结束。在搜索结果页面上,有大量 UI 控件用于过滤/排序搜索结果以查找您要查找的内容。一些由这些控件触发的操作可能需要(相对)较长的时间才能完成(例如几秒钟)。
如果用户最初过滤/排序他们的结果,这种延迟很好......有一个很好的 AJAX 微调器等等......但是当用户点击搜索结果然后点击 BACK 按钮时,我想页面会立即恢复到他们单击时的状态。
我可以使用 IFRAME/片段标识符作为页面历史的字典来恢复状态,但最终发生的是,当用户第一次点击后退按钮时,初始页面被加载,然后它(重新)进行 AJAX 查询以获取返回页面状态,这会触发 AJAX 微调器和另一个可能的等待几秒钟。
当用户通过BACK按钮返回页面时,是否有任何方法不需要页面的这种两阶段加载?
编辑添加:我偏爱 jquery,但我会对依赖于其他库/工具包或独立/原始 javascript 的解决方案感到满意。
编辑添加:我应该添加我正在尝试避免使用 cookie/会话,因为这可以防止人们打开多个浏览器窗口/选项卡并同时操作不同的搜索结果集。
编辑:马特,您能否详细说明您提出的解决方案(通过片段标识符触发页面更改事件)?我看到这将如何帮助单击同一页面上的 BACK 按钮,但在单击特定结果后不会返回到搜索结果页面。