我一直在使用jQuery中的$ .Deferred()最近測試了一下,並得到了一個問題。儘管延期和承諾對於僅運行一次的ajaxcalls來說非常棒,但我還得到了一個表單,用於添加新用戶,使用ajax發佈帖子需要多次運行。現在,這個延遲/承諾的二進制(ish)狀態崩潰,因爲一旦它們被解決或拒絕,它將保持該狀態。所以我的問題是:用jQuery多次發佈表單推遲
- 我可以使用推遲的任務,將被多次調用? - 如果可能的話,建議使用延期還是應該使用$ .ajax的成功/錯誤回調來堅持舊方法?
這裏有一些代碼,我張貼在一起的表格,這一次很好,但不是多次。
var submittingUser = new $.Deferred();
var savingUser = submittingUser.pipe(function(data) {
return $.post('ajax.php', data);
});
$("#add_new_user").click(function() {
var data = $("#add_user_form").serialize();
submittingUser.resolve(data);
return false;
});
savingUser.then(function() {
//Success
}, function() {
//Failed
});
我會回到使用直接的方法。正如您發現的那樣,延遲對象不能被解析多次。 –