2011-02-16 29 views
1

我试图用这个标签来加载内容与Ajax到div。我无法在间隔时间刷新它。但是,上半部分确实有效。jQuery加载一些基于其类是“活跃”的东西

<script type="text/javascript"> 
$(function rlAl() { 
    if ($("#xicon1").hasClass("active")) { 
    $("#actionlist").load("alcurrent.php"); 
    } 
    else if ($("#xicon2").hasClass("active")) { 
    alert("icon2"); 
    } 
    else if ($("#xicon3").hasClass("active")) { 
    alert("icon3"); 
    } 
}); 
$(function() { 
setInterval(rlAl, 5000); 
}); 
</script> 
+0

顺便说一下,它大概一个每次选项卡更改时加载(和缓存)内容的更好主意,而不是每5秒钟一次。在服务器上每5秒钟可能会很沉重(假设许多并发用户)。因此,如果我只坐在页面上,并在5分钟内不做任何事情(也许我休息并离开网站),脚本将连接到服务器60次。想象一下500名用户 - 每5分钟就有30,000次无用的连接。这不是太多要处理,但它肯定是浪费了服务器资源。也许可以尝试预加载内容(如果可以),或者缓存它,或者在更改制表符时加载。 – davin 2011-02-16 08:50:04

回答

3

rlAl is undefined,因为它没有连接到全球范围,把它拿出来$()你有它才能在window命名空间进行注册

function rlAl() { 
    if ($("#xicon1").hasClass("active")) { 
    $("#actionlist").load("alcurrent.php"); 
    } 
    else if ($("#xicon2").hasClass("active")) { 
    alert("icon2"); 
    } 
    else if ($("#xicon3").hasClass("active")) { 
    alert("icon3"); 
    } 
} 
$(function() { 
    rlAl(); // so it executes straight away on DOM ready 
    setInterval(rlAl, 5000); 
}); 
+0

非常感谢。第二个函数如何在$(然后? – 2011-02-16 08:17:03

相关问题