当我使用超时功能时,我得到一个jquery脚本不工作错误

时间:2011-11-08 04:35:53

标签: jquery

我在我的脚本中使用jquery,在此我使用该函数中的setTimeout()调用一个函数。我也使用setTimeout()在document.ready(function(){})中调用该函数;

当我运行此脚本时,我收到弹出错误消息“此页面上的脚本可能正忙,或者它可能已停止响应。您可以立即停止脚本,或者您可以继续查看脚本是否完成“

我将这些功能用作

$(document).ready(function(){
    setTimeout( 'reloadlink()', 1000 );
    setTimeout( 'randimage()', 2000 );

});
function reloadlink(){
    $.ajax({  
                    type: "POST",  
                    url: "<?php echo base_url();?>index.php/affliate/randomafflinks",
                    success: function(msg){
                        $('#rlinks').html(msg);
                        setTimeout( 'reloadlink()', 2000 );
                    }  
        });



}
function randimage(){
    $.ajax({  
                    type: "POST",  
                    url: "<?php echo base_url();?>index.php/affliate/randimage",
                    success: function(msg){
                        $('#affimg').html(msg);
                        setTimeout( 'randimage()', 2000 );
                    }  
        });



}

1 个答案:

答案 0 :(得分:0)

如果你将指针传递给你的函数而不是setTimeout中的字符串会更好。尝试调用这样的函数

setTimeout( reloadlink, 1000 );
setTimeout( randimage, 2000 );

setTimeout( function(){ reloadlink(); }, 1000 );
setTimeout( function(){ randimage(); }, 2000 );

更优选第一种变体。无论如何,当你用一段代码调用setTimeout时,解释器会创建一个匿名函数 浏览器还存储指向创建超时的指针,最好将其存储在某处并使用clearTimeout清除。如果不清除,您将浪费浏览器的资源。