永久打印 ajax 回复 JavaScript/jQuery

Permanently print ajax reply with JavaScript/jQuery

上下文

Ajax 代码用于从 Sql 数据库中获取数据,因此当将新消息插入数据库时​​,该消息将打印到 HTML div.

问题

问题在于,当变量插入 div 时,它会替换 div 的现有值。一种可能的解决方案是每次都发送整个聊天记录,但出于显而易见的原因,我宁愿避免这种情况!

客户端代码

var newmessages = function () {
    setTimeout(newmessages, 5000);

    var request = $.ajax({
        url: "ajaxtesting.php",
        type: "GET",            
        dataType: "html"
    });

    request.done(function(msg) {
        if(msg !== null && msg !== "") {
            $("#chat").html(msg);   
            scroll();
        }


    });

    request.fail(function(jqXHR, textStatus) {
        alert( "Request failed: " + textStatus );
    });   
}

消息变量用于存储Ajax响应和行:

 `$("#chat").html(msg);`

用来打印值到div "chat".

您需要附加到 #chat 而不是使用 html()

http://api.jquery.com/append/

尝试

$("#chat").append(msg);  

如果您需要在顶部插入新消息,那么

$("#chat").prepend(msg); 

您可能想查看 jQuery 的 append() 函数:http://api.jquery.com/append/

这样您就可以附加 Ajax 调用的结果。