jQuery - 如何使用 load() 每分钟自动加载一次内容



我有一个脚本,它通过单击函数使用 load() 加载内容。

我想将其更改为像幻灯片一样每分钟自动加载一次内容。

我需要循环浏览 3 个视频。

请有人指出我正确的方向,我不知道从哪里开始。我目前的脚本如下。

谢谢

我已经根据艾略特-邦纳维尔的答案更新了下面的代码。我仍然需要找到一种方法来循环浏览这些视频。

.JS

// define var video
var video = $('div.video');
var linkOne = $('.video_1').attr('href');
var linkTwo = $('.video_2').attr('href');
var linkThree = $('.video_3').attr('href');
setInterval(function() {
// load content into video
video.load( linkTwo + ' .content' , function() {
    // remove loading text
    $('.load').remove();
});
}, 10000) // 60000 milliseconds = one minute
setInterval(function() {
// load content into video
video.load( linkThree + ' .content' , function() {
    // remove loading text
    $('.load').remove();
});
}, 10000) // 60000 milliseconds = one minute
setInterval(function() {
// load content into video
video.load( linkOne + ' .content' , function() {
    // remove loading text
    $('.load').remove();
});
}, 10000) // 60000 milliseconds = one minute

使用 setTimeout

我认为如下所示。我还没有测试过它,所以可能存在一些语法错误。但希望你能理解。如果有什么没有意义的,请告诉我。

我使用setTimeout相当setInterval的一个原因是,这样,另一个计时器直到加载完成后才会被触发。在这种情况下,这并不重要,因为您每 1 分钟才这样做一次,但在某些情况下,服务器延迟可能大于间隔时间。此外,这样,如果由于某种原因,脚本/服务器出现故障并且没有收到成功的回复,则不会进行另一个调用。

// define var video
var video = $('div.video');
var currentVid=1;
var maxVid=3;
setTimeout(cycleVideo, 10000) // 60000 milliseconds = one minute
function cycleVideo() {
    // load content into video
    var link = $('.video_'+currentVid).attr('href');
    video.load( link + ' .content' , function() {
        // remove loading text
        $('.load').remove();
        if(currentVid==maxVid) currentVid=1; else currentVid++;
        setTimeout(cycleVideo, , 10000) // 60000 milliseconds = one minute
    });
}

使用 setInterval ,如下所示:

setInterval(function() {
    var link = $('#yourAElementId').attr('href');
    // load content into video
    video.load( link + ' .content' , function() {
        // remove loading text
        $('.load').remove();
    });
}, 60000); // 60000 milliseconds = one minute

最新更新