Javascript 在每分钟的第20秒调用AJAX

Javascript 在每分钟的第20秒调用AJAX,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在代码中进行AJAX调用。我想要的是在每分钟的第20秒进行AJAX调用。这就是我提出的AJAX请求 setInterval(function(){ $.ajax({ url: url, headers: { 'x-cyclops-ajax': 'yes' }, method: 'POST', dataType: 'json', success: function(data) { v

我正在代码中进行AJAX调用。我想要的是在每分钟的第20秒进行AJAX调用。这就是我提出的AJAX请求

setInterval(function(){
    $.ajax({
        url: url,
        headers: { 'x-cyclops-ajax': 'yes' },
        method: 'POST',
        dataType: 'json',
        success: function(data) {
            var chart = $('#container').highcharts();
            var keys = Object.keys(data["histData"]);
            $( "#main-div" ).empty();
            for( var i=0; i< keys.length; i++) {
                chart.series[i].setData(data["histData"][keys[i]]["histFailure"], true);
                $('#main-div').append( '<div class="homepage-availability-inner-div"><h1 class="homepage-availability-text"> ' + keys[i] + ': <span class="dashboard-success">' + data["availData"][keys[i]] + ' </span> </h1></div>');
            }
            chart.xAxis[0].setCategories(data["histKeys"]);
            console.log("Data:" + JSON.stringify(data["availData"]));
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log("Did not hit the AJAX call");
        }
    });
}, 5000);
setInterval(函数(){
$.ajax({
url:url,
标题:{'x-cyclops-ajax':'yes'},
方法:“POST”,
数据类型:“json”,
成功:功能(数据){
var chart=$(“#容器”).highcharts();
var keys=Object.keys(数据[“histData”]);
$(“#主分区”).empty();
对于(变量i=0;i

任何帮助都将不胜感激。

如果您的意思是只在第20秒,如13:00:20,13:01:20,13:02:20

您必须执行以下操作:

//间隔可以根据使用情况设置得更低,以便更准确
//警告间隔设置过低可能会影响浏览器/客户端的性能,
//如果毫秒数不够,则多次执行ajax
设间隔=1000;
//该函数大约每秒调用一次,
//因此,大约每分钟执行60次,并且只执行一次ajax调用。
设定间隔(
函数(){
让我们现在=新日期();
//如果是当前分钟的第20秒,则应仅开火
if(now.getSeconds()==20){
//ajax调用
console.info(现在);
}
},间隔

);如果您的意思是仅在第20秒,如13:00:20,13:01:20,13:02:20

您必须执行以下操作:

//间隔可以根据使用情况设置得更低,以便更准确
//警告间隔设置过低可能会影响浏览器/客户端的性能,
//如果毫秒数不够,则多次执行ajax
设间隔=1000;
//该函数大约每秒调用一次,
//因此,大约每分钟执行60次,并且只执行一次ajax调用。
设定间隔(
函数(){
让我们现在=新日期();
//如果是当前分钟的第20秒,则应仅开火
if(now.getSeconds()==20){
//ajax调用
console.info(现在);
}
},间隔

);您可以使用setInterval方法进行连续循环,当当前秒数为20时,您可以进行ajax调用。请参阅代码片段:

setInterval(function() {
  if(new Date().getSeconds() === 20) {
     // Your ajax call
  }
}, 1000);

可以使用setInterval方法进行连续循环,当当前秒数为20时,可以进行ajax调用。请参阅代码片段:

setInterval(function() {
  if(new Date().getSeconds() === 20) {
     // Your ajax call
  }
}, 1000);

间隔到20000,并且认为在setinterval下生成$.ajax不是一个好主意,因为它是异步的。在
setinterval
BTW中使用异步方法是完全有效的,这称为长轮询。但是请记住,答案可能不会按顺序返回。这里的问题到底是什么?这不管用吗?什么?间隔为20000,并且认为在setinterval下创建$.ajax不是一个好主意,因为它是异步的。在
setinterval
BTW中使用异步方法是完全有效的,这称为长轮询。但是请记住,答案可能不会按顺序返回。这里的问题到底是什么?这不管用吗?什么?记住这不会在第20秒运行
setInterval
不保证精确在时间段内运行。它会根据很多因素而变化,比如js线程的使用情况等。所以这会有所不同(很可能会有一点),但根据所需的准确性,我会降低间隔,或者尝试不同的方法。我暗示这是一个web应用程序,其中没有长时间运行的阻塞JS脚本,所以应该可以。但这取决于用途case@Liam所以我的用例是,我必须在第20秒每分钟刷新一次页面。但是如果一个请求发出,数据还没有返回,下一个请求发出了,时间是1000还是60000?间隔应该是1000。如果达到第20秒,您希望每秒钟检查一次:-DBear请记住,这不会在第20秒完全运行
setInterval
不保证精确在时间段内运行。它会根据很多因素而变化,比如js线程的使用情况等。所以这会有所不同(很可能会有一点),但根据所需的准确性,我会降低间隔,或者尝试不同的方法。我暗示这是一个web应用程序,其中没有长时间运行的阻塞JS脚本,所以应该可以。但这取决于用途case@Liam所以我的用例是,我必须在第20秒每分钟刷新一次页面。但是如果一个请求发出,数据还没有返回,下一个请求发出了,时间是1000还是60000?间隔应该是1000。如果达到第20秒,您希望每秒钟检查一次:-D