【发布时间】:2013-10-26 08:34:21
【问题描述】:
我有一个单页网络应用程序,它允许用户输入流派、日期范围和其他大量输入。
现在我读取所有这些输入并向服务器发出 ajax 发布请求。服务器在 java spring mvc 上。
一切正常。现在我想创建一个后退功能。
所以在进行了几次搜索之后,如果用户想要回到之前的第 4 次或第 5 次搜索,他应该能够做到这一点。
我看到了 history.back(-1) 但它不适合这里。因为 ajax 调用不会改变 url。我的网址总是 localhost:8080/MyImdb
ajax 调用如下所示:
xhr = $.ajax({
type: 'POST',
async: true,
dataType: 'json',
url: location.href + 'getResults',
data: ({date:dateRange, genre:genre, cast:cast }),
success:function(json) {
processData(json);
},
error: function(jqXHR, textStatus, errorThrown){
var error = "jqXHR: " + jqXHR + "; ; ; ; status: " + textStatus + "; ; ; ; errorThrown: " + errorThrown;
console.log(error);
}
}).done(function() {
hideLoadingIndicator();
});
我的一个想法是将所有帖子数据放入对象中。并将这些对象保存在堆栈中。 现在创建一个后退按钮。当用户单击它时,从堆栈中弹出对象并使用弹出的对象发出 ajax 发布请求并并行更新前端的输入框
这是标准方式还是有一些库可以做到这一点。
我查看了 jquery 历史插件和 hashchange 事件,但我认为它们不适合我的上述情况,因为 url 总是相同的。
你们中有人遇到过这种情况吗?
【问题讨论】:
-
我刚刚保存了搜索 - 几乎就像你提到的堆栈解决方案
标签: javascript jquery ajax spring web-applications