2012-07-11 35 views
0

我正在學習AJAX,因爲我需要它用於當前項目。當一個新行添加到MYSQL表中時,我想要更新一個Feed。我已經用node.js實現了這一點,但不幸的是我的客戶端服務器不能使用NODE,所以我試圖看看AJAX是否可能。當新行被添加到表中時,使用AJAX更新頁面

謝謝你的幫助!

回答

0

您需要讓客戶端通過polling不斷聯繫服務器,或使用推送技術,例如cometwebsockets。否則,您的客戶無法知道新數據何時到達。

彗星和websockets允許實時感受到這個過程,因爲它們實際上一旦將數據發送到用戶客戶端(您連接的瀏覽器)就可以使用,而輪詢它只是您的瀏覽器查詢服務器間隔。

缺點是推送技術和當然需要HTTP Keep Alive的彗星在你的服務器上可能會很沉重,尤其是對於基於流程的服務器,比如apache,它們的最大連接速度會很快被填滿,然後會一直持續到斷開連接。有調整選項和現代設置,但它不是最佳的:問題甚至有一個官方名稱c10k,這是你看到基於事件的服務器最近流行的原因之一。

+0

這就是我想...不幸的是我不能使用node.js中如果我沒有使用推送技術,而是每15秒鐘觸擊一次服務器,那麼這會非常耗費資源嗎?什麼是最好的方法? – steeped 2012-07-11 01:48:08

+0

只是想想你的應用程序:真正的時間方面有多重要?如果你有很好的延遲並且很重要,你可以在一個獨立的端口上設置一個node.js服務器(或者其他合適的候選服務器),並讓你的應用頻繁地進行輪詢。 – 2012-07-11 01:53:55

0

我不知道MYSQL或PHP在更新時可以將更新推送到頁面的位置。

最好的辦法可能會被用JavaScript運行定時器和檢查數據庫定期查看是否有過任何更新,你的表索引的最後一排

var refreshId = setInterval(function() { checkforUpdates(lastIndex) }, 10000); 

傳遞給JavaScript函數和函數調用一個PHP查詢數據庫的任何新行,如果有任何更新返回,使用JavaScript將它們添加到表中。

如果您還希望檢查更新的行,那會有點棘手!

+0

很難回答關於加載的問題,我想這取決於您希望在檢查之間更新數據的程度。此外,如果您正在檢查表格上的所有現有行以進行更新,或者只是查找新記錄。如果你只是在尋找新的記錄,SQL查詢不會花太長時間。 – hireSwish 2012-07-11 02:43:31

0

它更容易做AJAX的東西用jQuery

$("#update_charges").live("click",function() { 
    $.ajax( 
     {  
      type: "POST", 
      url: "phpfile_toadd_updaterecord.php", 
      data: "passvalue="+$('input_field_name').val(), 
      success: function(msg) 
      { 
          $('#result_div').html(msg); //msg contains any test echoed from //phpfile_toadd_updaterecord.php file 
      }  
    });//end $.ajax  
} 
下面

可以成爲你的HTML代碼

<form> 
<div id="result_div"></div> 
<input type="button" name="update_charges" id="update_charges" /> 
<input type="hidden" name="input_field_name" id="input_field_name" value="anyvalue_to be passed to php file"/> 
</form> 

Jquery ajax help page

+0

他的問題是關於如何對服務器端的值進行更改,顯示如何獲取值並沒有幫助。 – 2012-07-11 19:08:16

相關問題