2012-05-01 60 views
0

我已經找到了各種方法來查詢網站上的MySQL是好還是不好,大都是2歲。使用MySQL和PHP的JQuery輪詢。怎麼樣?

我想查看如何正確輪詢服務器的示例。

我有一個插入註釋的MySQL表。我希望在JQuery中看到如何輪詢此服務器並追加到DIV的示例,僅查看自上次輪詢檢查以來插入到表中的新註釋,而不是每5秒顯示最後10個條目。

一個非setInterval的例子將是理想的,因爲我讀過setInterval不在乎如果請求成功之前做出另一個請求。

回答

0

您將不得不向服務器端腳本發送AJAX請求,該腳本將檢查數據庫中的新評論並將它們返回爲JSON編碼。

要獲取最新評論,請在客戶端代碼上維護最後一次評論提取的時間戳。下次請求評論時,請傳遞此時間戳。您的服務器端腳本只會返回帶有時間戳記的註釋,而不是傳入的參數。

而不是使用setInterval,您可以在成功處理程序中重新提交AJAX請求。

function ajaxRequest(timestamp) { 
    $.ajax({ 
     url : 'url_to_post?timestamp=' + timestamp, 
     success : function(response){ 
      //handle the new comments here 
      //call this function again 
      //sleep for 3 seconds first 
      setTimeout(function(){ 
       timestamp += 3000; 
       ajaxRequest(timestamp); 
      },3000); 

     } 

    }); 
} 
+0

嗯......有趣。你能告訴我更多關於在成功處理程序中重新提交AJAX請求嗎?聽起來像某種循環。或者可能發佈樣本? =) – ASPiRE

+0

@Vini:我發佈了一個代碼示例。是的,這是一個遞歸循環。 – xbonez

+0

對。至於確保通過PHP提交,存儲和從MySQL檢索的時間戳格式是相同的,以便可以進行比較,希望所有3種語言都可以很容易地相互轉換。 – ASPiRE