fri*_*edo 3 javascript ajax recursion jquery xmlhttprequest
我有一个包含多个表单的页面,我通过串行方式通过Ajax POST提交.起初,我尝试使用同步XHR请求,但这会导致浏览器在请求期间锁定,并破坏我的DOM操作效果,这是不可接受的.所以我最终使用的模式基本上是这样的:
var fcount = 0; // incremented for each form to be submitted
function submit_form( num ) {
var fdata = { ... }; // data from form # num
$.ajax( { async: true,
url: '/index.cgi',
data: fdata,
type: 'POST',
success: function() {
if ( num < fcount ) {
submit_form( ++num );
}
}
} );
}
$( '#submit_form_btn' ).click( function() { submit_form( 1 ) } );
Run Code Online (Sandbox Code Playgroud)
递归让我觉得这是一个基本上是迭代问题的丑陋解决方案.是否有更清洁或更优雅的方式可以处理?
Viv*_*ath 10
这些请求是幂等的吗?如果他们是你可以简单地一个接一个地解雇他们.否则你会受到AJAX异步性质的限制.
UPDATE
我做了一些研究,显然存在一个名为jQuery消息队列的框架,它通过消息队列来处理串行AJAX请求.也许这可以帮到你.