Я использую решение PHP Ajax для своего чата в своем веб-приложении.Чат выглядит очень аккуратно, но я сталкиваюсь с большой проблемой в чате.Я использую setInterval
для получения новых сообщений, но когда интервал выполняется каждую секунду, страница заканчивается переходом к самому первому сообщению.Это происходит каждую секунду, мешая пользователю увидеть последнее сообщение.Вот скрипт, который я запускаю:
<?php
$id = $_GET['id'];
echo
"<script>
function ajax() {
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if(req.readyState == 4 && req.status==200){
document.getElementById('content').innerHTML = req.responseText;
}
}
req.open('GET', 'process.php?id=$id',true);
req.send();
}
setInterval(function () {
ajax();
}, 1000);
</script>
";
?>
Вот мой HTML-код, в который загружается содержимое:
<div class="card bg-sohbet border-0 m-0 p-0" style="height: 100vh;">
<div id="sohbet" class="card border-0 m-0 p-0 position-relative bg-transparent" style="overflow-y: auto; height: 100vh;" onload="ajax();">
<div id="content"></div>
</div>
</div>
Я пытался использовать setTimeout/clearTimeout
, event.preventDefault()
и return false;
.Ни одно из этих решений не сработало.Если бы вы могли помочь, это было бы очень признательно.
Пожалуйста, посмотрите ссылку на это видео для примера: https://www.hippovideo.io/video/play/gO83luY-81NfIeSeltBW-Q