如何在同一位置刷新div,避免重复行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在同一位置刷新div,避免重复行相关的知识,希望对你有一定的参考价值。

需要使用来自服务器的数据刷新div。服务器正在使用服务器发送事件发送数据。

一切正常,但数据以新行显示。我需要在相同的位置刷新相同的div,而不是添加更多的行。

这是html页面:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>

        <div id="result">Loading data. Please, wait...</div>

        <script type="text/javascript">
            if(typeof(EventSource) !== "undefined") {
                var source = new EventSource("demo_sse.php");

                source.addEventListener('message', function(e) {
                    document.getElementById("result").innerHTML += event.data + "<br>";
                }, false);

                source.addEventListener('open', function(e) {
                    // Connection was opened.
                    //alert('Connection opened');
                }, false);

                source.addEventListener('close', function(e) {
                    // Connection was opened.
                    alert('Connection closed');
                }, false);

                source.addEventListener('error', function(e) {
                    if (e.readyState == EventSource.CLOSED) {
                    // Connection was closed.
                        alert('Connection closed');
                    }
                }, false);

            } else {
                document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
            }
        </script>
    </body>
</html>

这是php文件:

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "retry: 1000
";
echo "data: The server time is: {$time}

";
//error_log('XXXX');
flush();
?>
答案

将行更改为:

source.addEventListener('message', function(e) {
                    document.getElementById("result").innerHTML = event.data + "<br>";
                }, false);

以上是关于如何在同一位置刷新div,避免重复行的主要内容,如果未能解决你的问题,请参考以下文章

从其他活动返回到同一片段时,如何保存和恢复片段中 RecyclerView 的滚动位置?

导航时如何防止div重新加载

PHP避免刷新页面重复提交

如何创建片段以重复变量编号中的代码行

firebase onSnapshot 如何刷新数组以避免重复键?

php 如何避免刷新页面重复插入数据到数据库