实时图表(SVG)+ AJAX/Javascript/Jquery + StdOut + Python + 我自己也不太清楚
我现在不太确定怎么准确描述我的问题,脑子里一团乱,所以请你们帮我理理思路,如果我说错了请纠正我,我肯定会错的。
主要目标:
是要制作一个实时更新的折线图,它可以根据从标准输出(stdout)来的数据自动更新,而不需要重新加载网页。简单来说,就是需要一个Python脚本,它每秒获取一个值,然后根据这些值在折线图上继续绘制线条。
1) 现在我脑海中想到的基本标签有:Javascript / AJAX,cgi,Python http网页服务器,SVG(矢量图形)。
所以,我最大的问题是我不明白如何持续地将stdout的值传输到网页上。我应该自己写一个Python http网页服务器,想办法传递这些值,然后用Javascript或AJAX加上SVG来绘制图表吗?
还是说写一个http网页服务器是个愚蠢的主意,我可以用其他方法让它工作?
任何其他建议,或者指引我去一些教程或文章都非常欢迎。因为现在我真的很困惑,尤其是在如何持续传递值到网页这部分。
提前谢谢你们。希望你们能给我一些指引 =)
4 个回答
还可以看看Flot的实时更新功能:http://people.iola.dk/olau/flot/examples/
我使用数据库作为缓冲区,所以不需要用Comet或其他推送技术。
Highcharts非常适合用来展示静态数据,或者数据更新速度最多为1000毫秒的情况。如果你把更新速度改成100毫秒,效果就会很糟糕。
我推荐你试试Smoothie Charts。这个工具非常适合你的需求。
你想做的是用JavaScript来绘制图表,比如可以使用一个叫highcharts的库。然后,你可以用AJAX向网络服务器发送请求,以获取你的数据。
根据你的需求,你可以定期发送这些请求来获取新数据。或者你也可以考虑使用更高效的技术,比如web sockets、comet等。