在Stack Overflow上,配置文件頁面列出了「上次看到」屬性。這似乎並未在每個頁面視圖中更新(顯然是出於性能原因)。你將如何在大流量的Web應用程序中實現它?你會只在某些頁面上更新它嗎?或者緩存上次登錄用戶上次訪問的時間,並在更新數據庫之前等待特定時間?或者完全不同的東西?如何爲用戶實現「上次看到」功能?
5
A
回答
3
您可能會發現"What strategy would you use for tracking user recent activity?"會有所幫助。問題是相似的。
2
我會使用SESSION。並且只將它設置爲會話的第一次訪問。如果人們離開瀏覽器,每個小時左右還要重新設置一次。在php這樣的事情:
if(!isset(!_SESSION['lastSeen'])){
$_SESSION['lastSeen'] = time();
updateLastSeenInDatabaseOrSomething();
}
else{
if($_SESSION['lastSeen'] < time() + 2 * 60 * 60){ //2 hours
$_SESSION['lastSeen'] = time();
updateLastSeenInDatabaseOrSomething();
}
}
這樣的事情,但隨後與OO,而不是兩次做同樣的事情。
5
在像Stack Overflow這樣的交通繁忙的網站上,我只會更新「上次看到」的變量,當用戶實際上做了的事情。潛伏並閱讀問題和答案不應視爲系統「看到」的用戶。詢問和回答問題,或對他們進行投票應該是上次看到用戶時更新的操作。
我不會談論實現細節,因爲這已經被其他答案覆蓋了(我可能會弄錯它)。
0
考慮爲此使用「Command」設計模式。它將以兩種方式幫助你 - 回答當前的問題,並執行「撤消/重做」功能。您應該維護一個按照該模式設計的命令對象列表。
相關問題
- 1. 看看如何實現C++ 11功能
- 2. 您將如何實現「查看網站作爲不同的用戶」功能?
- 3. 如何在我的網站上實現PDF/PPT查看功能?
- 4. 如何實現未註冊用戶的查看次數?
- 5. 如何實現搜索功能到UITextView?
- 6. 如何實現MenuStrip功能?
- 7. 如何實現Wait()功能
- 8. 如何實現diff功能?
- 9. 如何實現該功能?
- 10. 的功能實現爲lambda
- 11. 如何使用GDIplus實現Chord功能?
- 12. 如何使用OOP實現此功能?
- 13. 如何通過用戶功能在Typo3中實現多連接?
- 14. 如何在FB中實現「用戶在線」功能?
- 15. 如何在ASP.net中實現查看模型功能網站
- 16. 如何實現「點擊查看更多」功能?
- 17. 如何實現智能裁剪功能
- 18. 如何使用戶更容易看到軟件功能?
- 19. 在django網絡應用程序中實現「上次看到」功能的最佳方式是什麼?
- 20. 我如何實現再次播放功能?
- 21. 如何爲用戶名實現一次登錄
- 22. 如何在Rails和actioncable中爲網頁實現「立即觀看」功能
- 23. 如何實現標籤功能,如tumblr
- 24. 谷歌郵件如何用html5實現新的上傳功能?
- 25. 如何使用Objective C在ImageView上實現fing功能?
- 26. 如何在iOS上的PJSIP調用中實現靜音功能
- 27. 實現parallel_for_each功能
- 28. 實現`distrib`功能
- 29. 我如何實現Facebook的功能?
- 30. 如何實現多功能類