递归调用Web服务未完全执行

时间:2013-01-10 12:29:02

标签: javascript iphone titanium

我正在开发Titanium Appcelerator来开发iphone应用程序。我需要调用一个不同参数的Web服务超过1250次。我将xhr.send()方法放在xhr.onload函数中。它工作正常3-8次,但在此之后停止呼叫。没有错误或显示任何问题。请建议。

  function(e){

var xhr = Titanium.Network.createHTTPClient();

var Request = "<RefId>"+idArray[e.index]"</RefId>";
xhr.open("POST", url); 

xhr.setRequestHeader("WWW-Authenticate","Basic");
xhr.setRequestHeader("Content-Type","text/xml", "charset=utf-8");
xhr.setRequestHeader("Content-Length", Request.length); 
xhr.setRequestHeader("SOAPAction", "http://example.com"); 

xhr.onload = function() {


    var doc = Titanium.XML.parseString(this.responseText);
    var type = doc.getElementsByTagName("studentName");

    Ti.API.info(type.item+';'+type.item.length);
    if(type.item.length<1){

        file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, "textfile.txt");

    }
    doc=null;
    type=null;


if(idArray.length>e.index){
//alert('Calling API');

var url="http://example.com";
var Request = "<RefId>"+idArray[e.index++]"</RefId>";   
xhr.setTimeout(2500);
xhr.open("POST", url); 
xhr.send(Request);

}

};    
xhr.onerror = function(){
    alert('Error')
};
xhr.send(Request);

}

1 个答案:

答案 0 :(得分:0)

我会尝试重新创建客户端,而不是再次调用send