我有我的PHP/MySQL的網站之一的簡單和通用內部的消息服務,以獨特的messageID
,from
,to
,subject
,message
,time
和isRead
。檢查用戶是否有新郵件的最有效方法?
一般來說,檢查用戶是否有新郵件的最佳方法是什麼?
我應該在主用戶表上存儲一個簡單的二進制觸發器,當用戶向他們發送消息時切換爲1,然後讓用戶在每個頁面負載上檢查1,如果有,則提醒他們新郵件(並且每當他們進入收件箱時將其設置爲0)?但是,如果它是垃圾郵件,我們在用戶閱讀之前刪除它呢?
或者我應該存儲用戶閱讀的最後一條消息的messageid
,然後檢查最新的消息,並查看它是否比他讀的最後一條消息更近,並且如果是這樣提醒他?但是,我應該如何以及在哪裏存儲這些信息?
考慮到我們必須檢查每個頁面上的新消息,是否有另一種更有效的方法?
如果用戶轉到他的收件箱,它不應該再向他顯示他在收件箱中檢查時收到的任何郵件都有「新郵件」,無論他是否實際點擊閱讀他們與否。
謝謝!
編輯:我的一些用戶從非常基本的電話訪問我的網站,沒有cookie甚至Javascript,所以請記住這一點。
您的消息對象是否有狀態字段,例如可以查詢的「新建」或「讀取」狀態?在查看hotmail/gmail或類似的東西時,您可以將讀取的郵件切換回未讀,我假設他們也正在使用某種狀態字段。 – Nope
@Francois:我在我的OP中有一個isRead'字段,但是這是如果這個特定的消息被實際讀取或沒有。 「新消息」警報有點不同,因爲它會在用戶上次檢查收件箱後收到新消息時提醒用戶。那有意義嗎? – ProgrammerGirl
如何使用websocket?從服務器你可以以異步的方式發送消息到瀏覽器,然後瀏覽器可以做任何需要的信息 – marcelog