2013-10-24 89 views
0

我正在使用ajax从填写的表单发送信息到php文件,该文件将大量电子邮件发送到表单中的选定用户类别。问题在于列表非常大(5000个用户),并且在列表完成之前操作超时。如何在发生超时时重新发送数据jquery ajax

我已经为操作设置了超时限制,但是我不知道如何将原始表单数据重新发送回php文件,以便它可以继续处理列表。下面是jQuery的Ajax代码即时通讯使用

$(document).ready(function(){ 
    $("#subscriberform").submit(function(e) { 
    e.preventDefault(); //prevent default form submit 

    var postData = $(this).serializeArray(); 
    var formURL = "'.SITE_PATH.'components/admin/subscribers/ajaxprocess.php"; 

    $.ajax({ 
     url: formURL, 
     type: "POST", 
     data: postData, 
     timeout: 30000, 
     dataType: "html", 
     beforeSend: function(){ 
     $("#formdata").html("<p>Sending selected articles to subscribers: </p><img src=\"'.DEFAULT_TEMPLATE_PATH.'images/ajaxloader.gif\"><p><strong>Please dont close window</strong></p>"); 
     }, 
     success: function(data,textStatus){ 
     $("#formdata").html("<p>Sent Data ["+textStatus+"]: </p>"+data+""); 
     }, 
     error: function(x,t,m){ 
     // I want to insert the code here 
     } 
    }); 
    }); 
}); 

我不是在jQuery知识渊博。我能请得到这个

由于一些帮助在此先

+0

“//我想在这里插入代码”-w帽子阻止你这样做? – TheWolf

+0

你确定要这样做吗?有可能电子邮件会不止一次发送给一些用户,为什么不把电子邮件分成10个左右的组?加上处理5000的任何东西在JavaScript中可以缓慢在旧版本的IE ... –

回答

1

检查的textStatus用于错误处理程序

from Doc功能(jqXHR jqXHR,字符串textStatus,字符串errorThrown)

和值textStatus可以是"timeout", "error", "abort", and "parsererror"

function doSubmitList(formData) 
{ 
    var formURL = "'.SITE_PATH.'components/admin/subscribers/ajaxprocess.php"; 

    $.ajax({ 
     url: formURL, 
     type: "POST", 
     data: formData, 
     timeout: 30000, 
     dataType: "html", 
     beforeSend: function(){ 
      $("#formdata").html("<p>Sending selected articles to subscribers: </p><img src=\"'.DEFAULT_TEMPLATE_PATH.'images/ajaxloader.gif\"><p><strong>Please dont close window</strong></p>"); 
     }, 
     success: function(data,textStatus){ 
      $("#formdata").html("<p>Sent Data ["+textStatus+"]: </p>"+data+""); 
     }, 
     error: function(x,t,m){ 
      if(t==="timeout") { 
       doSubmitList(formData); 
      } 
     } 
    }); 
} 
相关问题