我有一個頁面顯示插入到mysql數據庫中的數據;我希望(如果可能的話)在將記錄添加到數據庫時自動更新此視圖頁面(數據不會從同一頁面插入或可能從其他用戶插入)。當數據庫更新時jquery更新頁面
在此先感謝 ciao h。
我有一個頁面顯示插入到mysql數據庫中的數據;我希望(如果可能的話)在將記錄添加到數據庫時自動更新此視圖頁面(數據不會從同一頁面插入或可能從其他用戶插入)。當數據庫更新時jquery更新頁面
在此先感謝 ciao h。
第一種方式(最簡單但煩人):
向頁面添加元刷新,整個頁面刷新每x時間。
第二種方式(AJAX):
我假設這是你想要的。
在上述網頁創建樣式顯示一個<的div元素>:沒有這樣的
<div id="mydata" style="display: none;"></div>
創建PHP頁面,用於檢索和格式化數據庫數據並以x格式(即表格或p標籤)打印出來。沒有頁眉或頁具體的東西不僅僅是數據和簡單的標記
在index.php文件把這樣的事情
<script type="text/javascript">
function update() {
$.ajax({
url: 'http://www.example.com/getData.php?q=latest',
success: function(response) {
$('#mydata'.html(response);
}
});
}
// .ready function
$(function() {
// do setup stuff here, I think there is a refresh timer or something
// that you'd use to trigger it every x amount of time
// i.e something like this
update();
});
</script>
編輯:AJAX HTTP streaming力數據到用戶
我知道最好的方法來做到這一點,但快速簡單的解決方案將是在頁面加載時獲取表格中的總行數。然後每個x秒使用一個AJAX腳本來重新檢查該表的行數。如果它已經改變,你可以有額外的邏輯,然後獲取新的行。
我認爲存儲最後一個請求的時間戳,然後檢查是否有更新的消息比檢查消息的總量更有意義(如果有人刪除消息f.e.會怎樣?) – 2010-08-05 14:39:34
確實,這是實現上述目的的另一種方式。如果您要在記錄中存儲時間戳,只需在[上次更新時間]之後查詢數據庫中的任何行。 – 2010-08-05 15:15:55
我思考如果你正在尋找一個事件驅動的系統,那麼這個昨晚並且意識到node.js(http://nodejs.org/)可能是完美的。在http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/有一個關於開始使用node.js的很好的教程。
是的,這是可能的,你的問題是什麼? – 2010-08-05 13:56:15
我想給出一個示例或關於如何操作的建議,再次感謝 – haltman 2010-08-05 14:00:02
@Viper_Sb,我也希望看到您的方法。沒有頁面刷新或以固定的時間間隔發出更新的AJAX請求,我不知道你會如何做到這一點。 – blcArmadillo 2010-08-05 14:22:17