我打算在不刷新页面的情况下从文本文件中显示on.php / html的实时图表。目前,我在以下过程中遇到了问题。
源文件:包含来自solaris服务器的数据的.txt文件。
1)定期向服务器询问solaris服务器的数据。 (假设目标文件夹指定为/ home / sadm / htdocs / 00000001 / updateShop)
2)从文本文件(inventory.txt)
中检索数据3)解析数据以添加新行 例如。从(2008-1-6:33322:39463)文本文件中
[new Date(2008,1,6),33322,undefined,undefined,39463,undefined, 未定义]
如果我没有错,那就需要我使用AJAX来做,但我无法让它工作。我可以要求对3个步骤进行编码吗?
非常感谢任何形式的帮助。
我使用的Google图表API代码显示在下面以供参考。
<html>
<head>
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load('visualization', '1', {'packages':['annotatedtimeline']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'Sold Pencils');
data.addColumn('string', 'title1');
data.addColumn('string', 'text1');
data.addColumn('number', 'Sold Pens');
data.addColumn('string', 'title2');
data.addColumn('string', 'text2');
data.addRows([
[new Date(2008, 1 ,1), 30000, undefined, undefined, 40645, undefined, undefined],
[new Date(2008, 1 ,2), 14045, undefined, undefined, 20374, undefined, undefined],
[new Date(2008, 1 ,3), 55022, undefined, undefined, 50766, undefined, undefined],
[new Date(2008, 1 ,4), 75284, undefined, undefined, 14334, 'Out of Stock','Ran out of stock on pens at 4pm'],
[new Date(2008, 1 ,5), 41476, 'Bought Pens','Bought 200k pens', 66467, undefined, undefined],
[new Date(2008, 1 ,6), 33322, undefined, undefined, 39463, undefined, undefined]
]);
var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
chart.draw(data, {displayAnnotations: true});
}
</script>
</head>
<body>
// Note how you must specify the size of the container element explicitly!
<div id='chart_div' style='width: 700px; height: 240px;'></div>
</body>
</html>
答案 0 :(得分:0)
你是对的,你需要使用ajax更新页面而不刷新 - 你可能想使用jquery或prototype.js这样的库来使ajax处理更容易一些。您需要设置一个定时事件,该事件以某个定义的频率触发(使用库也很容易)然后您创建一个PHP脚本,为您提供所需的数据。根据数据集的更新频率以及定时事件触发的频率,您可能会遇到两个问题: 你呼唤数据,但是没有新的数据,可能你不想让同一行两次,或者 你呼唤数据,有两个(或更多)新行,我猜你想要所有这些。
请记住,即使ajax中的X最初意味着xml,通常更容易使用另一种格式进行传输,json甚至是纯文本。
希望这能为您提供一些指导。 (从后端服务器开始通常是有意义的(至少,我经常这样做......),如果你用get-parameters调用它,你可以在浏览器中轻松测试它,看看你得到了你的预期)