更新div而不重新加载页面 - jquery / ajax setInterval

时间:2016-08-12 11:35:02

标签: javascript jquery html ajax

具有通知系统和私人消息系统的网站使用setInterval来更新相关的2个div而不重新加载页面。

因此我使用:

<script>
$(document).ready(function () {
setInterval(function() {
    $.get("notifi_reload.php?n=1", function (result) {
        $('.notifications').html(result);
    });
}, 10000);

setInterval(function() {
    $.get("notifi_reload.php?n=2", function (result) {
        $('.private_messages').html(result);
    });
}, 10000);
});
</script> 

notifi_reload.php只给出一个数字。代码:

$notifi = $_GET["n"];

// 1 = notification
if ($notifi == 1)
{

echo $user->data['user_notification_count'];

} else{

// 2 = PM
echo $user->data['user_new_privmsg'];

}

问题:

我每10000秒 2 $ .get请求。是否有可能只有 1 $ .get请求?也许我可以构造notifi_reload.php来同时存在?

谢谢

1 个答案:

答案 0 :(得分:2)

JS中的

$(document).ready(function () {
    setInterval(function() {
        $.ajax({
            dataType: "json",
            url: "notifi_reload.php",
            success: function(result){
                $('.notifications').html(result.notif);
                $('.private_messages').html(result.private_msg);
            }
        });
    }, 10000);
});

和PHP

$data = array();

$data['notif'] = $user->data['user_notification_count'];
$data['private_msg'] = $user->data['private_msg'];

echo json_encode($data);