无需刷新即可显示数字

时间:2013-12-28 08:54:50

标签: javascript jquery ajax page-refresh

function countComments() {
    $.ajax({
        url: '/comments/' + id,
        type: 'GET',
        dataType: 'json',
        async: 'true',
        success: function(comments) {
            console.log(comments + "count");

            $('.btn-dis').html('total' + comments.length );
        }
    });
}

$('#btnComment').click(function(e) {
    e.preventDefault();
    console.log('post comment');
    // pass in the form object
    postComment( $(this).parent().parent(), 'comment' );
    // title, body, refId, commentorId, commentorName
    countComments();
    $('textarea#comment').val('');
});

现在,我每次发表评论时都要刷新它。总计应在点击按钮后“自动”或“立即”显示评论数量以发表评论。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

如果使用setInterval解决问题,这将每隔3秒更新一次评论计数。如果你愿意,你可以用毫秒改变它的给定时间

$('#btnComment').click(function(e){
        e.preventDefault();
        console.log('post comment');
        // pass in the form object
        postComment( $(this).parent().parent(), 'comment' );
        // title, body, refId, commentorId, commentorName
        countComments()//loads the comment after clicking button instantly
        setInterval(countComments(),3000);//and check for   update counts every 3 seconds
        $('textarea#comment').val('');
    });

答案 1 :(得分:0)

在postComment回调中更新你的评论数。

像:

function postComment() {
    $.ajax({
        url: '/comments/add',
        type: 'POST',
        dataType: 'json',
        cache: false,
        success: function(data) {

          // Comment accepted.. 
          if (data.status == "ok") {

            console.log(data.comment_count);
          } 
        }
    });
}

并将您的服务器设置为使用json传递评论发布结果,如:

{status: "ok", comment_count: 19283}

答案 2 :(得分:0)

你的评论countComments();一旦功能被调用 postComment($(this).parent()。parent(),'comment');成功回复成功或发布完整评论

也使用async:false

它应该像

$('#btnComment')。点击(function(e){

    e.preventDefault();
    console.log('post comment');
    // pass in the form object
    if(postComment( $(this).parent().parent(), 'comment' )){
    // title, body, refId, commentorId, commentorName
    countComments();
    }
    $('textarea#comment').val('');

});