没有互联网连接10分钟后再次执行JavaScript

时间:2016-09-13 10:30:19

标签: javascript jquery ajax connection

我希望我的JavaScript检查是否有互联网连接。

当有,我想执行一个ajax调用,否则我希望JavaScript稍后再尝试(比如10分钟),因为可能再次有连接。

我已经尝试了navigator.onLine,但它没有用。 我也试图用ajax调用中的error: function(){}部分来处理它,但这两者都没有用。

这是我最后一次尝试的JavaScript(错误:function(){})



$(document).ready(function() {
	
	window.setTimeout(function(){ document.location.reload(true); }, 6000);
	
	loadPrices();

	function loadPrices() {
		$.ajax({
			url : 'php/loadPrices.php',
			type : 'POST',
			dataType : 'json',
			
			beforeSend: function(){
			    $('#loadingSpin').show();
			},
			complete: function(){
			    $('#loadingSpin').hide();
			},
			
			success : function(back_data) {
				
				$(".k18").html(back_data.k18 +" Euro");
				$(".k14").html(back_data.k14 + " Euro");
				$(".bruch").html(back_data.bruch + " Euro");
				$(".timestamp").html(back_data.timestamp+" Uhr");
			},
			error: function(){
				window.setTimeout(function(){ document.location.reload(true); }, 6000);
			}
		});

	}
});




如果有人可以帮助我会很好。

1 个答案:

答案 0 :(得分:0)

我认为您应该将超时属性添加到jQuery.ajax

超时意味着,如果您未在给定时间内(以毫秒为单位)获得响应,则会执行错误回调,因此您可以使用setTimeout

在10分钟后再次请求

请参阅jQuery文档:http://api.jquery.com/jquery.ajax/



$.ajax({
  type: 'GET',
  url: 'foobar.php',
  timeout: 15000, // 15 secs timeout
  error: function(XMLHttpRequest, textStatus, errorThrown) {},
  success : function(){}
})