Ruby on rails 3 终止jqueryajax表单提交
我可能会连续几次远程提交表单。对于这种特殊情况,去抖动不是一种选择。对于使用Ruby on rails 3 终止jqueryajax表单提交,ruby-on-rails-3,jquery,Ruby On Rails 3,Jquery,我可能会连续几次远程提交表单。对于这种特殊情况,去抖动不是一种选择。对于使用.submit()提交的远程表单,我正在寻找jQuery等价的.abort(),以便在提交新表单时可以取消以前提交的所有表单 提前感谢,, Garrett也许您可以使用jQuery对提交进行排队,并在需要时清除队列。只是一个想法…我不理解你的问题。如果表单已提交,将向服务器发送请求。。。那么,你怎么能放弃呢 如果abort的意思是取消响应的处理,那么只需使用一个控制变量来增加/减少,以了解是否存在挂起的请求 从API:您
.submit()
提交的远程表单,我正在寻找jQuery等价的.abort()
,以便在提交新表单时可以取消以前提交的所有表单
提前感谢,,
Garrett也许您可以使用jQuery对提交进行排队,并在需要时清除队列。只是一个想法…我不理解你的问题。如果表单已提交,将向服务器发送请求。。。那么,你怎么能放弃呢 如果abort的意思是取消响应的处理,那么只需使用一个控制变量来增加/减少,以了解是否存在挂起的请求
从API:您不能这样做。我所做的是附加到表单的beforeSend事件,将xhr对象存储为表单数据的一部分,并在新请求排队时中止它:
$('form').bind("ajax:beforeSend", function(evt, xhr) {
console.log('Enqueued new xhr request');
var prevXhr = $(this).data('current-xhr');
if (prevXhr) {
prevXhr.abort();
console.log('Aborting previous xhr request');
}
$(this).data('current-xhr', xhr);
});
您仍然可以直接使用表单中的
:remote=>true
选项。是的,我想取消对响应的处理。问题是服务器不一定按照接收请求的顺序发回响应,因此简单的请求计数器不允许我确定哪一个响应是最近的(除非我很傻,没有看到什么)。我可以在请求中包含计数器并在响应中返回它,但如果可能的话,我希望避免服务器端参与。