2012-11-30 52 views
0

我打算從文本文件中顯示實時圖形on.php/html而不刷新頁面。目前,我在以下過程中遇到了問題。如何從文本文件更新實時圖形?

源文件:包含源自solaris服務器的數據的.txt文件。

1)定期向服務器詢問來自solaris服務器的數據。 (假定目標文件夾被指定爲/家/ SADM/htdocs中/ 00000001/updateShop)

2)檢索從文本文件中的數據(inventory.txt)

3)解析數據以添加新行 例如。從(2008年1月6日:33322:39463)在文本文件中,以

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

如果我沒有錯,它會要求我使用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

你是對的,你需要使用AJAX無刷新更新頁面 - 你可能想使用一個庫如jQuery或prototype.js中,使AJAX處理更容易一點。你需要設置一個定時事件,以某個定義的頻率觸發(使用庫也很容易)然後你創建一個PHP腳本,它可以讓你恢復你想要的數據。根據數據集的更新頻率以及定時事件觸發的頻率,您可能遇到兩個問題: 您打電話詢問數據,但沒有新數據,可能您不想有兩次相同的行,或 你呼叫數據,並有兩個(或更多)新的行,我想你想要所有的人。

請記住,儘管ajax中的X最初意味着xml,但使用其他格式的傳輸,json甚至純文本通常更容易。

希望這會給你一些指引,在哪裏繼續。 (從後臺服務器開始(至少,我經常這麼做)通常是有意義的,如果你用get參數調用它,你可以在瀏覽器中輕鬆地測試它,看看你是否恢復了你的預期)