我正在开发一个基于Phonegap的应用程序,它显示存储在远程服务器中的一些数据,如何在发生错误并且没有获取数据的情况下每隔一定时间刷新一次数据第一次。提前致谢
这是list.js
$(document).ready(function(){
var output = $('#vehiculosOutput');
$.ajax({
url: 'http://www.periodicosonofertas.com/mobile/conexVehiculos.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
$.each(data, function(i,item){
var landmark = '<li>'+item.name + '<p></p>'
+ '<p><font style="white-space:normal; font-size: small" >'+item.descripcion+'</p>' + '<p>'+item.contacto+'</p>' + '<p>'+item.telefono+'</p>' + '<p>'+item.correo+'</p><p>'+status+'</p></li>';
output.append(landmark);
});
},
error: function(){
output.text('Error');
//setTimeout(func.updateStatus, 1000);
}
});
});
答案 0 :(得分:4)
您可以使用长轮询。如果您还没有听说过,this是一个很好的起点。 如果您只需要在错误的情况下重新发送请求,则以下代码段将起作用。
(function poll(delay){
setTimeout(function(){
$.ajax({
url: "http://127.0.0.1:8000/time/",
success: function(data){
$('#requiredDivId').text(data.value);
},
error: function(data){
//Recursive **Poll**
poll(30000);
},
dataType: "json"
});
}, delay);
})(0);
答案 1 :(得分:0)
如果您想使用评论中提到的特定功能,那么在phonegap中有一个名为 network.isReachable 的功能(您可以在here中找到更多详细信息)。你可以把这个函数用来检查settimeout函数中是否有连接,如果是,那么你可以运行函数将数据发送到服务器。
我希望它会帮助你