0

我有更新通知的方法,更新时返回通知的数量和 json 类型的通知内容

{
    "friend_request": 4,
    "request": [{
        "user_id": "1",
        "picture": "/home/sepdau/",
        "name": "Le Chanh"},
    {
        "user_id": "2",
        "picture": "",
        "name": "Yii PHP"},
    {
        "user_id": "4",
        "picture": "13366396884.jpg",
        "name": "Minh Le"},
    {
        "user_id": "11",
        "picture": "",
        "name": "Thang Phan"}]
}​

当我收到我更新通知成功的数量

function updateNotification(){        
    $.ajax({
        url: '/nevergiveup/index.php/site/updatenotification',
        type: "post",
        dataType: "json",
        success: function(data){            
            if(data.friend_request>0){
                $(".zingcounter").text(data.friend_request); //update number of nofitcation
                // load the template file, then render it with data
                var html = new EJS({url: '/nevergiveup/jstemplates/friend_request.ejs'}).render(data);
                //$("#frlist").append(html);
                //$(html).replaceAll('#replacehere');
                $('#replacehere').replaceWith(html); // update content of notification
            } 
            setTimeout(updateNotification,10000);
        },
        error: function(){
            setTimeout(updateNotification,10000);
        }
    });       
}

我使用 EJS 构建内容模板
我有一个<div id="replacehere">替换我的内容在这里
$('#replacehere').replaceWith(html);用来替换但是当我看到 json 数据接收后 10 秒内的第一次请求
有一个新的内容并且通知的数量已经改变但内容没有改变时它成功。
收到新内容时如何更改。

4

1 回答 1

2

猜你只需要使用

$('#replacehere').html(html);

否则它将删除#replacehere div ...并且第二个请求将找不到将内容放入...

于 2012-06-04T19:23:47.250 回答