AJAX调用新数据但只在setInterval完成后重新加载

时间:2017-07-19 09:28:44

标签: jquery ajax

我有一个通过AJAX请求调用数据的页面。数据包含每10秒轮换显示的四组数据。在第35秒的那一刻,我调用数据库获取新数据,这样当它到达第40秒并显示最后一张幻灯片并返回第一张时,将显示新数据。

目前这是有效的,如果AJAX请求花费的时间超过5秒,则显示第一张幻灯片,并且当检索到新数据时,幻灯片将被缩短并且整个事情再次开始,相反,如果检索需要的时间少于最后一张幻灯片缩短了5秒钟。

这就是我所拥有的:

var views = ['.call_time', '.call_day_average', '.schools_called', '.schools_quoted'];
var html;
$('.loader').show();
update(); // Call the update function so as to get the initial data set

$(document).ready(function() {
  setInterval(function() { // Set the type swapping running, change every 10 seconds
    $.each(views, function(key, elem) { // Start by hiding all the type views
      $(elem).hide('slow');
    });
    var temp = views.pop(); // Collect the last type view from the array
    views.unshift(temp); // Add the collected type view to the front of the array
    $(views[0]).show('slow'); // Hide the first type of the array
  }, 10000);
});

// Every 35 seconds call the database for the new data set
setInterval(function() { update(); }, 35000);

function update() {
  html = '';
  $.ajax({
    url: '<?php echo base_url( '
    leaderboard / update ' ); ?>',
    type: 'post'
  }).done(function(data) {
    var data = $.parseJSON(data);
    $.each(data[0], function(company, data2) {
      // Build an html string from the data to diplay on the page
    });

    $('.leaderboard').html(''); // Empty the div ready for the update
    $('.leaderboard').append(html); // Add the new data set to the div
    $('.loader').hide();
  });
}

我想做的是在30秒内调用新数据并按住它直到最后一张幻灯片显示10秒钟,然后用新数据无缝地启动第一张幻灯片,这就是我被卡住的地方

如何保存数据并在最后一次setInterval完成后才显示数据?

提前干杯

0 个答案:

没有答案