带有JSON和PHP的HTML5服务器发送事件(SSE)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了带有JSON和PHP的HTML5服务器发送事件(SSE),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2115字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试设置一个HTML5服务器发送事件,该事件使用JSON数据更新网页.
我已经在线检查了很多信息网站和教程,但是似乎没有为完全初学者(如我)编写的任何信息.
我还在此StackExchange上检查了类似问题的答案,但仍然无法解决.
我只能从“ w3schools”获得一个基本示例,尽管它不使用JSON.
我希望有人可以向我展示如何获取HTML5服务器发送事件以使用JSON数据.
我正在工作的文件如下:
的HTML
<!DOCTYPE html>
<html>
<body>
<h1>Getting server updates</h1>
<div id="result"></div>
<script>
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("demo_sse.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>
的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";
flush();
?>
我想与SSE一起使用的JSON数据类型的示例如下:
{"employees":[
{
"firstName":"John",
"lastName":"Smith",
"age":"25"
},
{
"firstName":"Sally",
"lastName":"Simpson",
"age":"24"
},
{
"firstName":"Pete",
"lastName":"Daltry",
"age":"30"
}
]}
我使用以下脚本在jQuery和上面的JSON文件上取得了一些成功:
<body>
<p id="team"></p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/
jquery.min.js">
</script>
<script>
$(document).ready(function(){
$.getJSON("team.json", function(data){
$.each(data, function(){
$.each(this, function(key, value){
$("#team").append(
"First Name: " + value.firstName + "<br>" +
"Last Name: " + value.lastName + "<br>" +
"Age: " + value.age + "<br><br>"
);
});
});
});
});
</script>
</body>
但是,我无法让SSE处理JSON数据.
任何帮助将不胜感激.
解决方法:
由于来自服务器的数据为字符串格式,因此您可以从服务器发送json字符串.该代码将是(服务器端代码).
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$data = array(
'firstName'=>'Test',
'lastName'=>'Last'
);
$str = json_encode($data);
echo "data: {$str}\n\n";
flush();
在客户端.
var source = new EventSource("events.php");
source.onmessage = function(event) {
var jdata = JSON.parse(event.data);
console.log(jdata);
};
内容总结
以上是互联网集市为您收集整理的带有JSON和PHP的HTML5服务器发送事件(SSE)全部内容,希望文章能够帮你解决带有JSON和PHP的HTML5服务器发送事件(SSE)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。