在一个页面中使用jQuery重新加载3个DIV

时间:2014-02-28 08:47:46

标签: javascript jquery ajax

我有3个DIV,我在其中加载3个不同的页面,然后使用此代码使用jQuery刷新它们:

var auto_view = setInterval(
    function () {
        $('#viCount').load('adViCount.php').fadeIn("slow");
    }, 500
);

var auto_like = setInterval(
    function () {
        $('#liCount').load('adLiCount.php').fadeIn("slow");
    }, 500
);

var auto_favorite = setInterval(
    function () {
        $('#faCount').load('adFaCount.php').fadeIn("slow");
    }, 500
);

显示:

<div id="viCount"></div>
<div id="liCount"></div>
<div id="faCount"></div>
  • 我想知道这种方式是否正确
  • 我想在页面加载时设置值,然后每10秒重新加载div
  • 我想知道这是否会导致高服务器负载(性能)

谢谢你们

3 个答案:

答案 0 :(得分:2)

将您的加载内容放在一个函数中,在DOM准备就绪并且每10秒调用一次:

function performRequests() {
    $('#viCount').load('adViCount.php').fadeIn("slow");
    $('#liCount').load('adLiCount.php').fadeIn("slow");
    $('#faCount').load('adFaCount.php').fadeIn("slow");
}

$(document).ready(function () {
    // Load once on pageload
    performRequests();

    // And then every 10 seconds
    var requestsInterval = setInterval(performRequests, 10000);
});

更好的方法是在一次调用中返回这三个视图(例如,您可以返回JSON),这样您就可以减少服务器请求。

答案 1 :(得分:0)

要设置一个值,您需要在load()完成时调用一个函数,例如:

var foo=1;
$('#faCount').load('adFaCount.php', function(){
  foo++;
});

答案 2 :(得分:0)

在页面加载期间填写值你应该在php中包含脚本(抱歉,我不知道该怎么做)

每10秒重新加载一次脚本,你可以将间隔设置为10000。

要停止重新加载,您可以使用clearInterval功能

clearInterval(auto_view);

好吧,我不知道这是否是最佳方式,但是如果你需要每隔10秒刷新一次div,那就是我的方式。