數據推送之 - Comet

Comet 是一種長連接的技術;

創建事例

首先我們建立一個簡單的項目,然後放到本地的Apache服務器下啓動;
項目結構

//data.php
<?php
header("Content-type:appliacetion/json;charset=utf-8");
$res=array('success'=>"ok","text"=>"我是測試的文本");
echo json_encode($res);
?>
<meta charset="UTF-8">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<h1>測試</h1>
<script type="text/javascript">
    $.ajax({
        url: "data.php",
        dataType: "json",
        success: function(data) {
            console.log(data)
        }
    });
</script>

我們怎麼做?

以往很多是寫一個定時器.每隔一段時間做一個請求

方法一:
//index.html
這裏寫圖片描述
這裏寫圖片描述

<?php
//data.php
//header("Content-type:appliacetion/json;charset=utf-8");
// 這句的意思是;讓我們的前段或者是後端沒有輸出; 實時輸出
header("Cache-Control:max-age=0");
while(true){
    $res=array('success'=>"ok","text"=>"我是測試的文本");
    echo json_encode($res);
    //緩存頁面
    ob_flush();
    //結束緩存
    flush();
}
?>

方法二:

<meta charset="UTF-8">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<h1>測試</h1>
<script type="text/javascript">
    function cun() {
        $.ajax({
            url: "data.php",
            dataType: "json",
            success: function(data) {
                console.log(data)
                cun()
            }
        });
    }
    cun()
</script>
<?php
header("Content-type:appliacetion/json;charset=utf-8");
    $res=array('success'=>"ok","text"=>"我是測試的文本");
    sleep(1)
    echo json_encode($res);

?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章