HTML5与php实现消息推送功能

1、html页面basic_sse.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据推送</title>
</head>
<body>
    <pre id="result">
        Initializing...
    </pre>
    <script type="text/javascript">

        if(typeof(EventSource)!=="undefined")
          {
          var source = new EventSource("/sjts/index.php");
          source.onmessage=function(event){              
            document.getElementById("result").innerHTML=event.data + "<br />";
            };
          }
        else
          {
          document.getElementById("result").innerHTML="Sorry, your browser does not support server-sent events...";
          }

    </script>
</body>
</html>
复制代码

2、php页面index.php

复制代码
<?php
    header('Content-Type:text/event-stream');//通知浏览器开启事件推送功能
    header('Cache-Control:no-cache');//告诉浏览器当前页面不进行缓存

    //$time = date('r');
    //echo "data: The server time is: {$time}\n\n";
    
    $mysqli = new MySQLi('localhost','root','','test');
    $sql = 'select ac_id from article_class where ac_name="11";';
    $result = $mysqli->query($sql);
    while($row = $result->fetch_assoc()){
        $time = $row['ac_id'];    
        echo "data: The server time is: {$time}\n\n";
    }

    ob_flush();//刷新
    flush();//刷新
?>
复制代码

总结:通过改变数据库ac_id自动,前端不刷新即可实施改变数据

posted @   龍飛鳯舞  阅读(7007)  评论(2编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示