最好的辦法是,在應(yīng)用程序生命周期內(nèi),對(duì)于數(shù)據(jù)庫(kù)設(shè)置有事件鉤子,用于監(jiān)聽(tīng)程序?qū)τ跀?shù)據(jù)庫(kù)的操作。這樣非常方便處理邏輯流程。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、濱湖網(wǎng)站維護(hù)、網(wǎng)站推廣。
1 - 表的數(shù)據(jù)變化
表數(shù)據(jù)發(fā)生了變化,毫無(wú)疑問(wèn)是寫(xiě)操作,包括以下幾種情形:
新建條目 create
更新條目 update
刪除條目 delete
以上三種都是寫(xiě)操作,會(huì)對(duì)表數(shù)據(jù)寫(xiě)入。
2 - 事件鉤子
既然需要實(shí)時(shí)監(jiān)控,那么每個(gè)數(shù)據(jù)庫(kù)的操作,都需要考慮在內(nèi),這是全局的監(jiān)聽(tīng)。
以laravel的Eloquent ORM 模型觸發(fā)事件,允許你掛接到模型生命周期的如下節(jié)點(diǎn): retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored。事件允許你每當(dāng)特定模型保存或更新數(shù)據(jù)庫(kù)時(shí)執(zhí)行代碼。每個(gè)事件通過(guò)其構(gòu)造器接受模型實(shí)例。
模型內(nèi)添加事件監(jiān)聽(tīng)鉤子
如果重用率很高,那么使用觀察者 Observer 方式進(jìn)行監(jiān)聽(tīng)更為高效。
Laravel Observer
結(jié)語(yǔ)
上面的方法要求讀者有l(wèi)aravel框架的使用基礎(chǔ),對(duì)于構(gòu)建中大型應(yīng)用非常有利。
樓上說(shuō)的還是要定時(shí)檢測(cè)
不論怎么做,繞來(lái)繞去都是一樣的,都是需要定時(shí)檢測(cè)。
Ajax 控制一個(gè)異步PHP程序來(lái)檢測(cè)數(shù)據(jù)庫(kù),然后返回值,供調(diào)用。
你的意思是:數(shù)據(jù)庫(kù)一發(fā)生變化,你就得知道是嗎?
PHP無(wú)法實(shí)現(xiàn)這功能,
只有LINUX 跑 shell腳本,每X分鐘執(zhí)行查詢語(yǔ)句
要么就是你每執(zhí)行一條語(yǔ)句,寫(xiě)入日志。
查詢頁(yè)面在例外一個(gè)php做,然后使用Ajax, 也就是你的keyup事件發(fā)生后,調(diào)用Ajax,ajax可以訪問(wèn)服務(wù)器的任何文件,包括php, 并且能返回這個(gè)php的運(yùn)行完成后的輸出結(jié)果, 而且整個(gè)過(guò)程是在不刷新頁(yè)面的情況下完成的, 也就是Ajax在調(diào)用服務(wù)器文件的時(shí)候, 是后臺(tái)運(yùn)行的,你看不到他的運(yùn)行過(guò)程的!
至于Ajax具體怎么用,請(qǐng)百度學(xué)習(xí)一下!
那你可以在插入數(shù)據(jù)庫(kù)那里設(shè)置監(jiān)聽(tīng)呀,一有插入就往Android推送消息。
不然你只能通過(guò)每隔一段時(shí)間刷新一下讀取數(shù)據(jù)庫(kù),看看有沒(méi)有更新,有就推送,沒(méi)有就繼續(xù)監(jiān)聽(tīng),這個(gè)你可以自己設(shè)置更新時(shí)間。