0

我打算在不刷新页面的情况下从文本文件中显示实时图表 on.php/html。目前,我在以下过程中遇到了问题。

源文件:包含数据的 .txt 文件,源自 Solaris 服务器。

1) 定期从 solaris 服务器向服务器请求数据。(假设目标文件夹指定为 /home/sadm/htdocs/00000001/updateShop)

2) 从文本文件 (inventory.txt) 中检索数据

3)解析数据以添加新行,例如。从文本文件中的 (2008-1-6:33322:39463) 到

[新日期(2008, 1 ,6), 33322, 未定义, 未定义, 39463, 未定义, 未定义]

如果我没有错,它需要我使用 AJAX 来完成,但我无法让它工作。我可以要求对 3 步过程进行编码吗?

非常感谢任何形式的帮助。

我使用的 google graph 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>
4

1 回答 1

0

你是对的,你需要使用 ajax 来更新页面而不刷新——你可能想使用 jquery 或 prototype.js 之类的库来使 ajax 处理更容易一些。您需要设置一个以某个定义的频率触发的定时事件(使用库也很容易)然后您制作一个 php 脚本来返回您想要的数据。根据数据集的更新频率和定时事件触发的频率,您可能会遇到两个问题:您调用数据,但没有新数据,可能您不希望同一行重复两次,或者您调用数据并且有两个(或更多)新行,我猜您想要所有这些行。

请记住,尽管 ajax 中的 X 最初表示 xml,但通常更容易使用其他格式进行传输,json 甚至纯文本。

希望这可以为您提供一些指导。(从后端服务器开始通常是有意义的(嗯,至少,我经常这样做......),如果你用 get-parameters 调用它,你可以很容易地在浏览器中测试它,看看你得到了你期望的结果)

于 2012-11-30T08:15:12.080 回答