如果你继续使用它,webview中的ajax工作正常,但如果你不做任何事情并等待大约10分钟并尝试使用ajax将数据发送到服务器没有任何反应。我检查了服务器端没有从webview中的ajax发送的请求。是webview的错误还是搞砸了什么?
我使用的ajax代码(jQuery $.ajax
带有一些我自己的函数):
function extendBaseAjax(paramObj){
if(typeof(paramObj['maxRetryTimes'])=='undefined'){
paramObj['maxRetryTimes']=0;
}
var maxRetryTimes=paramObj['maxRetryTimes'];
var retryCounter=0;
var error=paramObj['error'];
var errorHandler=function(XMLHttpRequest, textStatus, errorThrown){
if(textStatus=='timeout'){
retryCounter+=1;
if(retryCounter<maxRetryTimes){
$.ajax(paramObj);
}else{
error(textStatus);//timeout", "error", "notmodified" ,"parsererror"
}
}else{
error(textStatus);
}
}
var success=paramObj.success;
var successHandler=function(data){
if(typeof(data)=="string"){
data=eval('('+data+')');
}
success(data);
}
paramObj['success']=successHandler;
paramObj['error']=errorHandler;
paramObj['date']=new Date().getTime();//no cache
$.ajax(paramObj);
}
我的大多数ajax都是这样使用的:
extendJsonpAjax({
url:url,
data:data,
timeout:timeout,
maxRetryTimes:maxRetryTimes,
success:function(data){
var resultNumber=data['resultNumber'];
totalPageNumber=resultNumber+1
totalPageNumber=Math.ceil(resultNumber/limit);
executeCallBack(data,currentPageNumber,totalPageNumber);
isAjaxCompleted=true;
},
error:function(textStatus){
errorCallBack(textStatus);
isAjaxCompleted=true;
}
});