我想製作一個用戶狀態系統,我想在我的數據庫中有一個叫做last_active
的日期時間字段,並用當前時間用ajax自動更新該字段。檢查用戶狀態
然後我檢查last_active
和當前時間..分鐘之間,告訴用戶是否在線,不活動和線下..
這是一個很好的技術?以及如果用戶例如打開網站但正在做其他事情會發生什麼?
只有當用戶正在查看頁面時,纔有辦法激發ajax請求嗎?
我想製作一個用戶狀態系統,我想在我的數據庫中有一個叫做last_active
的日期時間字段,並用當前時間用ajax自動更新該字段。檢查用戶狀態
然後我檢查last_active
和當前時間..分鐘之間,告訴用戶是否在線,不活動和線下..
這是一個很好的技術?以及如果用戶例如打開網站但正在做其他事情會發生什麼?
只有當用戶正在查看頁面時,纔有辦法激發ajax請求嗎?
當前的方法是一個很好的技術做了,要走的路,
你可以focusin
,並與jQuery focusout
功能檢查,以檢查用戶是否是文件或當前不活動,
$(document).ready(function(){
$([window, document]).focusin(function(){
// start the ajax requests
}).focusout(function(){
// stop the ajax requests
});
});
你應該把變量設置爲true
中的focusin
函數,並將設置爲focusout
函數。現在只有當變量設置爲true
時,繼續的ajax請求函數纔會觸發。
是的,正是我在做:)謝謝 – Fr0z3n
這是檢查活動的非常好的方法。只有當頁面處於焦點時,才能觸發Ajax請求。我會考慮使用mousemove事件或類似的,但模糊/焦點事件可以證明是有用的。
當觸發mousemove事件時,將變量設置爲true
並在執行Ajax請求之前檢查該變量。不要忘記在每個Ajax調用之間將其重置爲false
。
只需注意確定不同的AJAX更新之間的時間間隔。 – HBv6