实现从TXT文件自动更新只读Text Area的技术求助
我懂你要的是啥——一个不用点按钮、不用刷新页面,就能自动实时更新内容的只读文本框,用来展示TXT文件里的内容,之前试了好几种方法都没搞定对吧?别着急,我给你整了个能直接用的方案,你照着改改就行:
核心实现思路
其实就是用JavaScript定时发请求拉取TXT文件的最新内容,然后把内容塞到textarea里,同时把textarea锁成只读状态,不让用户编辑。用jQuery来做AJAX请求会更简单,你已经引入了jQuery,刚好能用。
完整代码示例
直接把下面的代码替换你现有页面的内容,记得把your-file.txt改成你实际的TXT文件路径:
<html> <head> <title>Yun_TempServer_Home</title> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function() { // 定义更新文本框内容的函数 function refreshTextContent() { // 加个时间戳参数,避免浏览器缓存旧内容 $.get('your-file.txt?' + new Date().getTime(), function(latestContent) { $('#live-txt').val(latestContent); }); } // 页面刚加载先更一次,不然一开始是空的 refreshTextContent(); // 每隔1秒自动更新一次,想更快的话把1000改成500就是0.5秒 setInterval(refreshTextContent, 1000); }); </script> </head> <body> <!-- 只读的textarea,样式可以自己调宽高 --> <textarea id="live-txt" readonly style="width: 90%; height: 500px; font-family: monospace;"></textarea> </body> </html>
几个要注意的点
- 路径要对:
your-file.txt得和这个PHP页面在同一个文件夹里,或者用绝对路径(比如/files/logs.txt),不然会找不到文件 - 缓存问题:我加了
?+new Date().getTime()这个参数,每次请求的URL都不一样,浏览器就不会用缓存的旧内容了,这点很重要 - 更新频率:如果TXT内容更新特别频繁,你可以把
1000改成更小的数字,比如500(0.5秒),但别设得太离谱,不然服务器压力会大 - 样式调整:textarea的宽高、字体这些你可以自己改,我加了
font-family: monospace让代码类的内容更整齐
要是还有问题,你可以看看浏览器控制台有没有报错,比如是不是TXT文件权限不够,或者路径写错了。
内容的提问来源于stack exchange,提问作者Giovanni Gibertoni
相关产品推荐
相关产品推荐

