如何通过C程序动态更新thttpd服务器下HTML页面的文本内容
你原先「C应用写入txt文件、前端定时拉取更新」的思路完全可行,针对thttpd这类轻量Web服务器的场景,该方案不需要额外部署后端服务、开发成本极低,是非常适配的选择。
具体实现代码
使用浏览器原生fetchAPI即可完成定时拉取更新的需求,以下示例代码每3秒读取一次dynamic_data.txt的文本内容,自动替换页面上id为ispr_1的元素展示内容:
<script> const ispr = document.getElementById("ispr_1"); const myFile = 'dynamic_data.txt'; async function updateDynamicData() { // cache: "reload" 配置强制跳过缓存,拉取最新的文件内容 const response = await fetch(myFile, {cache: "reload"}); if (response.ok) { const data = await response.text(); ispr.textContent = data; } else { alert('数据拉取失败,错误码:' + response.status); } } // 3000ms = 3秒,可根据你的更新频率需求自行调整间隔时长 setInterval(updateDynamicData, 3000); </script>
可选优化方案
如果后续你需要更高的实时性、或者想要降低轮询带来的性能损耗,可以选择以下复杂度略高的方案:
- C应用直接输出轻量HTTP接口,由thttpd做反向代理,前端用
EventSource建立长连接接收主动推送的更新数据,无需定期轮询 - 如果需要同时更新页面多位置的内容,可以把txt替换为JSON格式存储,前端解析后可批量更新多块展示内容
内容的提问来源于stack exchange,提问作者AlexB
相关产品推荐
相关产品推荐

