2011-05-29 58 views
0

我正在處理一個項目,並且每次將新記錄添加到MySQL數據庫中的特定表時都希望發出通知。我希望每次添加新記錄時都會顯示一個小的彈出窗口,但不刷新頁面。我聽說AJAX是要走的路,但我不太熟悉它。通知使用AJAX創建MySQL記錄

+0

您將不得不使用腳本來定期檢查數據庫中是否有新條目,如何在堆棧溢出時以相同的方式檢查新條目 – Ibu 2011-05-29 00:25:17

+0

您使用的是哪種服務器端編程語言/ – Ibu 2011-05-29 00:25:41

+0

PHP。我仍然不確定如何使用PHP來確定它是否是一個新條目。 – 2011-05-29 18:02:04

回答

3

不,它不會。數據庫不會告訴你何時插入記錄。你可以使用AJAX向服務器發送請求。然後,該服務器可以查詢更改。它可以發送一個指示是否有變化的響應。然後,AJAX請求的響應處理程序可以相應地顯示消息。

但是,實現這將在Web服務器和數據庫服務器上造成相當大的負載。所以如果你這樣做,明智地選擇時間。不要每秒執行此過程10次,否則只要您訪問100位訪客,就會殺死您的服務器。

要解決您的問題,請將它分成兩部分: 1.獲取實際的AJAX請求以使其工作。讓服務器返回虛擬值並嘗試正確處理它們。提示:使用JQuery.ajax(甚至是JQuery.get)來緩解你的生活。 2.讓服務器查詢更改。如果你想監視一個表,這可以很容易地完成。如果您還沒有時間戳列,請在表格中添加一個時間戳列。您可以對其進行配置,以便每次更新表時都會對其進行更新。然後,查詢最高時間戳。不要忘記添加索引到該列!

您也可以嘗試其他解決方案。在不同的表中添加一個可以改變日期/時間的觸發器。這樣,輪詢只需查詢單個列而不是「最大」查詢。

爲了正確處理這個變化,我認爲最好讓Javascript保持最後一個時間戳。將時間戳發送迴響應中。 Javascript可以比較時間戳和最後一個時間戳,並在需要時顯示一條消息。這樣,您就不需要在會話中保留時間戳。