Предотвратить загрузку Ajax Chat в начало страницы - PullRequest
0 голосов
/ 17 октября 2018

Я использую решение 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...