我有一个通过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完成后才显示数据?
提前干杯