如何實作使用者瀏覽紀錄

想做到:使用者瀏覽商品同時下面會列出一排瀏覽歷史的功能,本來有想使用session_id來實作,但是對於這組id的產生機制不太清楚(這邊請求解惑),且一旦用不同ip操作session_id就會更新,所以我沒辦法用它捕捉使用同一個瀏覽器的使用者…

目前想到的解法是在server產生一組key,然後把這個key用cookie存在使用者的瀏覽器,這樣就可以捕捉到同一個瀏覽器(也就是同一個使用者),請問這樣的做法好嗎?

A…你…在說啥…

session 的判定來源還是在 cookie 內,而 cookie 的 timeout 有兩種(排除 cookie 的作用域),一種是每次的,一種是時間的,而 Rails 的 session 為後者,你會發覺…這邊和 IP 無關,否則手機換 3G 基地台後就會換 IP,就會要一直登入,不會很怪嗎?

所以你的問題只會剩下是 per session (同一台電腦 / 設備 + 同一個瀏覽器) 或 per user (同一個使用者)

前者就丟在 session 內,後者用 memcache (dalli + Obj cache) 或 redis 或 DB 來做都可以,做法應該都類似,用個 Array 塞成固定長度的佇列並 unique, session 會自動 Marshal,memcache / Redis 要手工 Marshal,DB 就自己訂自己塞,這票其實就做完了才是…

anyway 以上

謝謝!所以其實session_id會更新只是因為他過期了,因此我只要設定他的過期時間就好了。我等於是重複發明輪子…