不使用setTimeout方法的实时注释

时间:2014-12-14 08:51:56

标签: javascript jquery

我正在尝试制作一个实时评论系统。我已经通过使用jquery setTimeout来实现这一点。但问题是每个时间间隔的页面都令人耳目一新,所以我认为这不是一个好方法。

这是代码

 function update_comment(){
        setTimeout(function(){
            $.getJSON("comment_fetch.php",function(data){
                $.each(data.result,function(){
                    //console.log(this["pid"]);
                    $(".commentItem"+this["pid"]).append("<p class='message'><a class='name' href='#'><small class='text-muted pull-right'><i class='fa fa-clock-o'></i>"+this["dc"]+"</small><i class='fa fa-user'></i>"+this["un"]+"</a>"+this["c"]+"<a href='#' class='replyLink'><i class='fa fa-pencil'></i> Reply</a></p>");
                });
                $.each(data.pidcc,function(){
                    //console.log(this["pid"]+" "+this["pcc"]);
                    $("#cmnt_count"+this["pid"]).html("Comment ("+this["pcc"]+")");
                });
            });
            update_comment();
        },200);
    }

有什么解决方案可以在不使用setTimeout的情况下制作实时评论系统吗?

1 个答案:

答案 0 :(得分:0)

当然页面很新鲜,你要为它添加更多数据。具体你想避免什么?

在Javascript中,基本上有两种代码执行方法:定时器或事件。 (从技术上讲,计时器也是一个事件,但它的处理方式不同)您可能不希望根据用户或浏览器事件加载内容,因此您需要某种外部系统在更新发生时通知您(也许是通过WebSocket),或者您需要通过计时器来完成。