我有一个ASP.net MVC项目,并且根据用户选择的过滤器选项,我向同一actionresult发送不同的ajax请求,例如:
$(document).on("click", "#filter_reset_button", function () {
var url = "/Admin/Index";
ajaxRequest({
url: url,
type: "get",
data: { reset: true },
successCallback: function () {
window.location.href = url;
}
});
});
其他侦听器发送了不同的数据,例如:
data: { page: 2, filterUpdate: true }
,依此类推。 Index ActionResult返回不同的项目列表,具体取决于数据中选择的不同选项,并且代码可以正常工作。
我的一个同事告诉我,我的代码实际上每次每次都向AR发送两个get请求,因此效率不高。真的吗?如果是这样,我该如何重构它。使它只是一个请求?如果我让window.location.href = url部分退出,则该站点实际上不会加载服务器响应。
答案 0 :(得分:0)
这是正确的2个请求。
在管理控制器中调用AJAX get
到操作索引时的第一个请求。
设置window.location.href = url
后的第二个请求,与在浏览器中输入/Admin/Index
相同。
在这种情况下,点击功能只需要window.location.href = '/admin/index?reset=true'
答案 1 :(得分:0)
是的,您正在单击按钮中的2个请求。 Ajax
中获得第一名,成功回拨中获得第二名。
但是您为什么要拨window.location.href = url;
success
回叫。 ?
如果要在单击后更新页面,可以对页面进行部分更新。检查this帖子。
答案 2 :(得分:0)
您可以在此处查看帖子 at this post
实际上,在成功回调时,您必须根据上述内容相应地更改代码