2013-04-07 85 views
1

如何檢查用戶是否仍在同一頁面上?檢查用戶是否仍在同一頁面上

我想標記帖子,如果有任何用戶閱讀同一帖子的時間超過五分鐘。要做到這一點,我需要檢查兩次:他第一次閱讀帖子時,以及5分鐘過去了。現在,我正在考慮做..

  1. 當他第一次閱讀帖子時,給讀者一個session[post_id]
  2. 使用delayed_job查看用戶在5分鐘後是否仍有會話。如果他這樣做,我會標記post
  3. 每當他回到帖子列表,我檢查他是否有任何session[post_id]並擺脫它。

這是否邏輯是否合理?

回答

2

我使用JavaScript來觸發一個請求:

<script> 
    $(document).on('ready', function(){ 
    this.setTimeout(function(){ 
     $.post("/posts/update/#{@post.id}", {marked: true}) 
    }, 1000*60*60*5) 
    }) 
</script> 
+0

但是,這不能被集成到後端代碼,可以嗎?我該如何標記帖子? (例如'@post.marked = true') – 2013-04-07 01:40:46

+2

@Maximus - 您必須在setTimeout函數上發送Ajax請求 – 2013-04-07 01:43:22

+0

如果我的方法需要更復雜的請求,該怎麼辦?每個'post' has_many'readers',我想將'current_user'添加到列表中。這可以通過發佈ajax請求來實現嗎? – 2013-04-07 02:13:17