2009-06-28 222 views
0

我有一个网页执行多个ajax请求并被修改,所有的ajax请求都缓存在页面上。然后用户单击某个链接并对另一个页面执行同步请求。然后用户点击浏览器的“返回”按钮。之前通过ajax加载的所有数据都会丢失。是否有可能在用户点击浏览器中的“返回”按钮后恢复页面状态,以便以前加载的所有数据在没有新的Ajax请求的情况下恢复?ajax在浏览器中导航请求

jQuery历史插件提供了一些帮助,它允许返回到页面的正确位置,但它执行必要的ajax请求。另外,如果有很多Ajax请求,很难将它们正确存储在历史记录中。

有没有办法解决我的问题,而不使用cookie或服务器端?

+0

没有使用历史,它会变得非常复杂。否则,你必须pushState()以获得关于当前状态的信息。虽然在这种情况下,Cookie可能不是一个好主意。保存在服务器上的会话是一个很好的解决方案,但是,当用户几天后回到该页面时,他不太可能确切地看到他以前的内容可能不是您想要的内容...... – 2015-01-12 01:35:55

回答

0

Really Simple History提供了一个非常灵活的API来管理后退按钮的功能。

+0

I不要认为历史允许恢复加载的Ajax数据。 – braz 2009-06-28 23:12:38

1

有没有办法解决我的问题 没有使用cookie或服务器端?

答案很可能是“不”。用于JS的数据由服务器提供的内容驱动。为了保存信息,您需要将其存储在服务器上并发送回去。

严格使用JS的概念将不必要地牵绊您的手。在AJAX调用服务器期间将这些东西保存到一个会话变量中(因为它与服务器进行通信)可能是一个相当直接的实现。