我有一个单页 Web 应用程序,它允许用户输入流派、日期范围和其他一堆输入。
现在我阅读了所有这些输入并向服务器发出 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 总是相同的。
你们中有人遇到过这种情况吗?