HTML5 - 服务器端事件 - 使用外部文本文件作为数据输入
HTML5 - Server side events - Using external text file as data input
我正在尝试使用纯文本文件 (text.txt) 作为 html5 服务器端事件的一部分。
目前我在浏览器中没有看到任何文本打印输出。如果只是 运行 这一行,不使用外部文件作为输入数据,它可以工作:
echo "data: test\n\n";
问题:假设以下文件的设置,我需要调整什么才能使外部文件数据在浏览器中可见?
我的html文件
<h1>SSE</h1>
<div id="result"></div>
<script>
// Create an object
var source = new EventSource("updater.php");
// Detect message receipt
source.onmessage = function(event) {
// Write the received data to the page
document.getElementById("result").innerHTML += event.data + "<br>";
};
</script>
我的php文件
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
// Include files
echo include("text.txt");
flush();
?>
我的文本文件:
"data: t1972\n\n";
问题的解决方案,如果使用下面指定的 [file_get_contents] 则有效。
$data = file_get_contents('text.txt');
echo "data: " . $data . "\n\n";
这也意味着文件 [text.txt] 只剩下文本,删除了 [data: ] 和 [\n\n]。
我正在尝试使用纯文本文件 (text.txt) 作为 html5 服务器端事件的一部分。
目前我在浏览器中没有看到任何文本打印输出。如果只是 运行 这一行,不使用外部文件作为输入数据,它可以工作:
echo "data: test\n\n";
问题:假设以下文件的设置,我需要调整什么才能使外部文件数据在浏览器中可见?
我的html文件
<h1>SSE</h1>
<div id="result"></div>
<script>
// Create an object
var source = new EventSource("updater.php");
// Detect message receipt
source.onmessage = function(event) {
// Write the received data to the page
document.getElementById("result").innerHTML += event.data + "<br>";
};
</script>
我的php文件
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
// Include files
echo include("text.txt");
flush();
?>
我的文本文件:
"data: t1972\n\n";
问题的解决方案,如果使用下面指定的 [file_get_contents] 则有效。
$data = file_get_contents('text.txt');
echo "data: " . $data . "\n\n";
这也意味着文件 [text.txt] 只剩下文本,删除了 [data: ] 和 [\n\n]。