2012-06-17 44 views
1

我想製作一個用戶狀態系統,我想在我的數據庫中有一個叫做last_active的日期時間字段,並用當前時間用ajax自動更新該字段。檢查用戶狀態

然後我檢查last_active和當前時間..分鐘之間,告訴用戶是否在線,不活動和線下..

這是一個很好的技術?以及如果用戶例如打開網站但正在做其他事情會發生什麼?

只有當用戶正在查看頁面時,纔有辦法激發ajax請求嗎?

+0

只需注意確定不同的AJAX更新之間的時間間隔。 – HBv6

回答

2

當前的方法是一個很好的技術做了,要走的路,

你可以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請求函數纔會觸發。

+0

是的,正是我在做:)謝謝 – Fr0z3n

1

這是檢查活動的非常好的方法。只有當頁面處於焦點時,才能觸發Ajax請求。我會考慮使用mousemove事件或類似的,但模糊/焦點事件可以證明是有用的。

當觸發mousemove事件時,將變量設置爲true並在執行Ajax請求之前檢查該變量。不要忘記在每個Ajax調用之間將其重置爲false