2014-10-07 31 views
0

在我的情況下,我會在X秒後自動刷新。但是我想只在插入或更新新數據時刷新它。只有當新數據插入或更新時才自動刷新/加載數據

這是我的腳本。

refresh.php

<script src="jquery-1.4.js"></script> 
<script> 
$(document).ready(function() { 
$("#responsecontainer").load("refreshnow.php"); 
var refreshId = setInterval(function() { 
$("#responsecontainer").load('refreshnow.php?randval='+ Math.random()); 
}, 1000); 
}); 
</script> 

<div id="responsecontainer"></div> 

refreshnow.php

<?php 
$query = mysqli_query($connection,"select * from `table`"); 
$rows = mysqli_num_rows($query); 
?> 
<table style="background:#F0F0F0;" border=1 style="border-collapse:collapse"> 
<tr> 
    <th>Name</th> 
    <th>Job</th> 
</tr> 
<tbody> 
<?php 
while($result = mysqli_fetch_array($query)){ 
    echo "<tr>"; 
    echo "<td>".$result["name"]."</td>"; 
    echo "<td>".$result["job"]."</td>"; 
    echo "</tr>"; 
} 
?> 
</tbody> 

所以,可以在插入或更新,沒有新的數據,纔有可能自動加載新數據刷新x秒後?

+1

你就必須打破負荷()成一個正常的AJAX調用,這樣就可以比較最後取到當前和丟棄相同的回報。 – dandavis 2014-10-07 06:37:04

回答

0

如果你想使用你現有的代碼,只需在mysql表中添加另一列(如果你有一個配置或設置表,這將是easyer,如果不是插入每個記錄的廣告時間戳)與值time(),這會在每次插入/修改行時更新數據庫中的時間戳。 然後就做這樣的查詢:

"select timestamp_column from `settings_table` order by timestamp_column limimt 1" 

If ($result["timestamp_column"]+1000>=time()){ 
     //do the refreshnow.php code here 
} 

希望它能幫助, 乾杯

相關問題