【问题标题】:Executing JavaScript again after 10 minutes when no internet connection没有互联网连接 10 分钟后再次执行 JavaScript
【发布时间】:2016-09-13 10:30:18
【问题描述】:

我希望我的 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);
			}
		});

	}
});

如果有人可以帮助我,那就太好了。

【问题讨论】:

    标签: javascript jquery ajax connection


    【解决方案1】:

    我认为您应该将 timeout 属性添加到 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(){}
    })

    【讨论】:

    • 嘿,很抱歉回复晚了,感谢您的回答!错误函数详细做了什么?这对我的问题有必要吗?
    • 如果在timeout指定的时间内(本例中为15秒)没有得到响应,error函数将被自动调用。
    • 好的,在错误函数中我必须做什么?对不起,如果我有点困惑,我还不明白它的工作原理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多