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);
?>