使用Javascript每30分钟制作一次ajax请求

时间:2016-12-22 14:21:52

标签: javascript jquery ajax asp.net-mvc momentjs

我需要使用Javascript每隔30分钟制作一次ajax请求。

对于当前登录的用户,我需要检索任何startdate等于当前时间的通知。当用户创建这些通知时,只允许保存30分钟的间隔。因此,在数据库中,您将看到StartDates,如12/22/2016 08:00:00,12 / 22/2016 08:30:00,2016年12月25日09:00:00,2016年12月28日09:30 :00等...

如果有帮助的话,我有片刻.js

2 个答案:

答案 0 :(得分:1)

您可以使用setIntervalsetTimeout的组合。如果用户刷新页面,它将重新计算到下一个半小时并从那里开始。您可以使用类似算法的日期对象getSecondsgetMilliseconds来获得更高的精度。

var minutes = new Date().getMinutes();
var numberOfMinutesTillNextHalfHour = (minutes <= 30)? 30 - minutes : 60 - minutes;
var minutesToSeconds = 60;
var secondsToMiliseconds = 1000;
setTimeout(function(){
    /* this will execute on the next half hour */
    setInterval(function(){
        /* this will execute ever half hour after that */
    }, 30 * minutesToSeconds * secondsToMiliseconds);
},numberOfMinutesTillNextHalfHour * minutesToSeconds * secondsToMiliseconds);

答案 1 :(得分:0)

你可以试试这个

var response = true;
function request(){
    if(response == true){
       response = false;
       var req = $.ajax({
           type:"post",
           url:"URL_CALL",
           data:{data:"Hello World"}
       });
       req.done(function(){
          console.log("Success");
          response = true;
      });
   }
   setTimeout(request(),1000);
}
request();