jquery ajax加载延迟 - php div旋转

时间:2012-05-22 19:44:59

标签: php jquery ajax html delay

希望有人可以提供帮助。我是javascript的新手所以请原谅任何错误。我正在努力实现以下目标:

我有一个带有html表的索引页面,分为四个季度。每个季度都有一个DIV ID,通过jquery的ajax加载将在一定延迟后成功地用PHP页面重新加载单个DIV。

我想要做的是,对于其中一个季度,每隔15分钟在DIV中旋转三个PHP页面,并继续循环。我已经设置了一个包含三个php站点的数组,并成功使用它与计数器变量通过jquery调用数组中的relavent条目。如果我在ajax代码中输入计数,它就可以了。我现在正在努力看看如何增加计数器,并在它到达第三页后重置它。

我不知道是否可以使用ajax.complete函数来协助,因为我不知道我是否可以在此函数中加入“标准”javascript。

感谢您的帮助 - 我的代码如下:

var count = 0;
var page = new Array("page1.php","page2.php","page3.php");
var delay = ("9000");


    (
function($)
{
$(document).ready(function()  
{        
$.ajaxSetup(        
    {            
        cache: false


    });  
    var $container = $("#DivID"); 
    $container.load(page[count]);    
    var refreshId = setInterval(function()  
    {           
        $container.load(page[count]); 
    }, delay); 



});

})

(jQuery);

2 个答案:

答案 0 :(得分:1)

试试这个

var refreshId = setInterval(function()  
{           
    $container.load(page[count]);
    count = (count+1) % 3 
}, delay); 

这样,当计数达到3时,它将被重置为0.百分号是模块除法

答案 1 :(得分:1)

不要使用Set Interval。

如果页面加载缓慢,会导致网站崩溃,它会滞后并链接

使用setTimeout:

setTimeout(function_name, delay);

var function_name = function() {
    $container.load(page[count], function(){
        count = (count+1) % 3;
        setTimeout(function_name, delay);
    });


}

这样,超时不会被链接,一旦页面加载完成就会触发