javascript - 无网络连接时10分钟后再次执行JavaScript

标签 javascript jquery ajax connection

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

当存在时,我想执行 ajax 调用,否则我希望 JavaScript 稍后再试一次(例如 10 分钟),因为可能会再次建立连接。

我已经尝试过 navigator.onLine allready,但它不起作用。 我还尝试使用 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

Timeout 表示,如果在给定时间(以毫秒为单位)内没有收到响应,则会执行错误回调,因此您可以使用 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(){}
})

关于javascript - 无网络连接时10分钟后再次执行JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467824/

相关文章:

javascript - jQuery:在分离()之后手动删除元素?

jquery - csrf 与 ajax 和 django post

javascript - 如何在 babel-loader 和 flow 中使用 webpack

javascript - jQuery:iPhone 数字键盘未在 native 应用程序中关闭

javascript - AngularJS 路由器配置不起作用

jquery - Spring mvc 3 在 url 中的 "#"之后附加内容?例如www.example.com/example#ui-tabs-4

javascript - 如何正确管理 AJAX 的快速输入?

javascript - 如何将两个 json 对象连接在一起?

javascript - 如何将 R Shiny 中的事件发送到 Google Analytics?

javascript - exceljs - 将填充应用于单元格范围