阻止Ajax聊天加载到页面顶部

时间:2018-10-17 05:31:05

标签: javascript php jquery html ajax

我在Web应用程序中使用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/clearTimeoutevent.preventDefault()return false;。这些解决方案均无效。如果您能提供帮助,将不胜感激。

请查看此视频链接的示例:https://www.hippovideo.io/video/play/gO83luY-81NfIeSeltBW-Q

0 个答案:

没有答案