Я использую AJAX для отображения уведомлений о сообщениях, но проблема в том, что если я отправлю два сообщения конкретному пользователю одновременно, он получит только последнюю версию. это файл my_js.js:
function updatess() {
$.getJSON("php/fetch.php", function(data) {
$.each(data.result, function(){
var name = this['sender_name'];
var message = this['message'];
$( '#messages' ).attr( 'id', 'new_msgs' );
$('div.from_name').html( name );
$('div.message').html( message );
});
});
}
и это моя индексная страница:
<div id="msg_holder" style=" overflow-x:scroll ;overflow-y: hidden; position:fixed;height:45px;width:865px;background-color:yellow;bottom:0px; left:144px; ">
<div class="mess_test" style="width:165px; height:35px; background:blue; bottom:0px; left:144px; margin-right: 16px">
<div class="from_name" style="float:left; "></div>
<div class="message" style="float:right;"></div>
</div>
.html()
сбросит HTML- код ваших элементов, вы, вероятно, захотите использовать .append() вместо этого:
Вставьте содержимое, указанное параметром, в конец каждого элемента в наборе согласованных элементов.
Таким образом, вы можете изменить:
$('div.from_name').html( name );
$('div.message').html( message );
чтобы:
$('div.from_name').append( name );
$('div.message').append( message );