2011-05-19 75 views
6

我想修改數據庫時更新頁面。我想用jquery來做這件事。問題不清楚?再看看這個,想這是我的網頁:當數據庫被修改時使用jquery更新頁面

<?php 
$query=mysql_query("select * from tbl1 where user='admin'"); 
if(mysql_num_rows?($query)!=0) 
{ 
    echo 'Table 1 has values'; 
} else { 
    echo 'Table1 is empty'; 


} 
?> 

,只要任何新條目添加到數據庫中,應執行此操作。現在假設我手動添加一個條目到數據庫,那麼頁面應該自動顯示結果爲「Table1有值」。我知道它可以通過定期使用刷新頁面來使用,但我不想使用它。相反,我想嘗試其他方法,如ajax輪詢?有人可以給我一個演示嗎?

回答

1

您可以使用長輪詢,但先做大量研究。您的服務器可能會終止長時間處於打開狀態的請求。

在PHP中,你的代碼將看起來像......

set_time_limit(0); 

while (TRUE) { 
    // Query database here 
    if ($results) { 
     echo json_encode($results); 
     exit; 
    } 

    sleep(1); 
} 
+0

沒關係,無論如何他應該會超時。看到我的答案。 – 2011-05-19 05:23:42

+0

$結果的價值是多少? – 2011-05-20 11:04:38

0

您正在尋找Ajax的推/彗星的解決方案。這些不是微不足道的。
你還提到了ajax池。
那麼,在服務器端,您需要循環,直到出現超時(您自己定義或服務器完成,確保您返回發生超時的HTTP狀態代碼),或者可以滿足請求。
而在客戶端,只要您成功完成操作,只需處理它並再次進行相同的ajax調用,如果超時,只需再次發出相同的ajax請求,直到滿足爲止。

相關問題