php - Ajax 发表评论,如 StackOverflow

标签 php jquery ajax

<分区>

我的问题是,像 StackOverflow 这样的评论系统有什么更好的方法, 我的意思是我从我的浏览器发送请求,每个人都会看到这个评论(或在其他浏览器中),而无需像聊天一样刷新页面。

我的解决方案是使用setInterval,但我认为必须有另一种方式

$(document).ready(function() {
get();
$('#send').click(function() {
    $.post('http://localhost/mvc.com/comment/post', {
        n_id: parseInt(newsId),
        user_id: $('#uid').val(),
        text: $('#content').val(),
        token: $('#token').val()
    }, function (ret) {
        if (ret.comm.err) {
            $('.f').empty().prepend('<li id=e><h3 style="color: red">ERROR</h3></li>');
            return false;
        }
        get();
    });
    setInterval(get,3000);
});

$('#content').keypress(function(e){
    var key = e.which;
    var cnt=$(this).val().length;
    var max=100;
    var tot=parseInt(max-cnt);
    if(key >= 33 || key == 13 || key == 32) {
        if (parseInt(tot) <= 0) {
            e.preventDefault();
        }
    }
});

function get() {
    $.post('http://localhost/mvc.com/comment', {get: parseInt(newsId)}, function (ret) {
        $('.f').empty();
        for (var key in ret.comm) {
            $('.f').append('<li class=c id=' + ret.comm[key].id +
            '><span>' + ret.comm[key].name + '</span><hr><br>' + ret.comm[key].text + '</li>');
        }
    });
}

最佳答案

虽然我已经看到您提到的用于实时更新的方法,但这不是正确的方法。

您将需要使用网络套接字,这是实时网络应用程序的事实。

Web 套接字本身就是一个主题,我可以继续讲下去,但这里有一个链接可以帮助您开始使用它们:http://socketo.me

关于php - Ajax 发表评论,如 StackOverflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29766085/

相关文章:

Javascript indexof 不适用于 json

php - 需要算法或 MySQL 查询建议

php - 通过 HTTP header 下载 csv 文件的问题

javascript - 从 ajax 加载的元素中检测 .click()

javascript - 如果它在文本框中,如何让 Javascript 例程不执行?

javascript - 如何在 Zend Framework 2 中通过 AJAX 表单上传文件?

javascript - 从 $.(ajax) 获取单选按钮值并将其传递到 SQL 查询中

php - 如果单词是特定字符,如何选择单词的所有开头字符?

php - 使用 PHP 加密和解密密码的最佳方法?

javascript - 为什么我的按钮忽略了我页面的 CSS?