在没有互联网连接的情况下,10分钟后再次执行JavaScript

Executing JavaScript again after 10 minutes when no internet connection

本文关键字:10分钟 JavaScript 执行 情况下 互联网 连接      更新时间:2023-09-26

我想让我的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);
			}
		});
	}
});

如果有人能帮我就太好了。

我认为你应该给jQuery.ajax添加超时属性。

超时意味着,如果你没有得到一个响应在给定的时间(毫秒)错误回调将被执行,所以你可以在10分钟内再次请求使用setTimeout

参见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(){}
})