在网页上显示一个每秒更新一次的txt文件
Show a txt file on a webpage which updates every second
我有点在黑暗中拍摄;我不知道如何做到这一点,所以一些指向有用教程的指针和/或链接会很棒:
我有一个网站,我想显示一个文本文件(服务器日志)。可能是嵌入式的。问题是,每当服务器中发生事件时,该文件都会更新(通常超过半秒)。如何使网页实时显示文件,即显示文件的实时提要?
我的猜测是,它将使用javascript和AJAX,但我对这两者的了解都非常有限。任何提示和帮助都将不胜感激:)
我的答案使用PHP和Ajax,尽管更改为ASP或任何其他语言并不困难。
头部
<script type="text/javascript">
function Ajax()
{
var
$http,
$self = arguments.callee;
if (window.XMLHttpRequest) {
$http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
$http = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
$http = new ActiveXObject('Microsoft.XMLHTTP');
}
}
if ($http) {
$http.onreadystatechange = function()
{
if (/4|^complete$/.test($http.readyState)) {
document.getElementById('ReloadThis').innerHTML = $http.responseText;
setTimeout(function(){$self();}, 1000);
}
};
$http.open('GET', 'loadtxt.php' + '?' + new Date().getTime(), true);
$http.send(null);
}
}
</script>
在身体里
<script type="text/javascript">
setTimeout(function() {Ajax();}, 1000);
</script>
<div id="ReloadThis">Default text</div>
</body>
现在使用loadtxt.php读取文本文件的值
<?php
$file = "error.txt";
$f = fopen($file, "r");
while ( $line = fgets($f, 1000) ) {
print $line;
}
?>
使用jQuery,您可以执行以下
setInterval(function() {
$('#element').load('/url/to/file');
}, 1000);
将每隔1秒用文件内容刷新ID为element
的div
您可以使用jQuery.get每隔几秒钟获取一次文件,并更新页面以显示内容。
其他人已经讨论过每次刷新都加载日志文件,但根据文件的大小,这可能是个坏主意。您可能想要创建一个服务器端页面,该页面将读取日志文件,并跟踪其中有多少已经提供给您,只提供新的部分。如果它是一个10k的文件,那么每秒将其传输给你会很烦人(而且可能很滞后)。
除此之外,其他人似乎已经涵盖了大部分客户端内容。
有多种方法可以做到这一点。。。
你可以调查长期民意调查。
粘贴一个元刷新标签,每隔X秒刷新一次页面。
终端中的tail -f /path/to/log.log
将打开该文件最后几行的实时预览——如果我需要在调试时读取错误日志,我会这样做。
或者只是边走边手动刷新页面,让页面自动更改内容可能会很烦人。
正如你所说的,你的文件非常大,我会使用PHP file()
函数从文件中获取前X行,以保持带宽降低和可读性提高!
使用此
setInterval(function() {
jQuery.get('file.txt', function(data) {
alert(data);
//process text file line by line
$('#div').html(data.replace('n','
'));
});
}, 1000);
https://www.sitepoint.com/jquery-read-text-file/
最后,是脚本和div id="重新加载此";一起好好工作!它还可以显示来自PHP文件的信息,该文件查询文本文件,以便在div元素中显示传入文本之前对其进行格式化。
- 通过CSV文件上载更新数据库表
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- Glassfish没有更新JavaScript文件
- JavaScript 不会更新文件
- 如何更新文件中的 JSON 数据
- 从javascript运行php更新文件
- 通过 IFrame 更新文件时的错误处理
- 无法通过 nodejs 读取更新文件的属性
- 节点.js更新文件中的 JSON 数据
- 露天更新文件 - 错误开机自检
- 为对事件更新文件的相同调用刷新浏览器缓存
- 在javascript中部分更新文件上传页面
- 上传或更新文件匹配表中行的objectId
- Filereader API在第一次更改后没有更新文件
- 更新文件时不需要重启Node.js中的服务器
- 插入和更新文件在谷歌驱动器与javascript
- 驱动器API:更新文件时的DeadlineExceededException
- 更新文件时触发来自 gulpfile 的更新
- Ajax打开(post)不更新文件
- 如果修改了Nginx更新文件