2013-11-02 38 views
4

什麼是跟蹤用戶在網站上的互動的好方法。然後,我的意思是捕捉一切都像:HTML5 + JS:跟蹤用戶互動

  • 滾動
  • 點擊
  • 移動光標
  • 發光輸入

當然有很多的HTTP發佈/ get請求也可能是令使用者感到不快。 我正在尋找一種方式來做到這一點,而不會煩人用戶,也沒有太多數據丟失。

我希望有人對此有一些經驗!

回答

3

免責聲明:對您的用戶進行間諜活動是很多用戶所不滿的,我建議您不要讓用戶知道您正在做什麼。

也就是說,您可以將事件偵聽器添加到要監視的事件。然後,只需將它們存儲在本地,並且只在給定的時間間隔或用戶離開頁面時將其存儲在服務器端。下面是一個簡單的例子(小提琴:http://jsfiddle.net/8ucSV/):

var Spy = (function (register, undefined) { 
    var eventStore = [], 
     // you can also add other things like "mousemove" here… 
     events = ['click']; 

    var store = function (type, data) { 
     eventStore.push({ 
      type: type, 
      data: data 
     }); 
    }; 

    events.forEach(function (event) { 
     register(event, function (data) { 
      store(event, data); 
     }, false); 
    }); 

    return { 
     dump: function() { 
      console.log(eventStore); 
     }, 

     store: function() { 
      // do whatever you wanna do here… 
     } 
    }; 
})(document.addEventListener); 

很明顯,你可以添加更多的抽象監控比您可以通過addEventListener註冊事件其他的事情。我也並不太在乎瀏覽器的兼容性。

+0

感謝您的評論,但是關於不同的頁面和關閉頁面呢。 HTTP請求無法在窗口關閉事件中完成。 – Tim

+0

您也可以存儲當前位置以使數據與頁面相關聯。至於其他問題,您可以定期將數據發送到服務器,但也可以將它們存儲在'localStorage'中。這樣,情慾塊將被存儲在客戶端,並且可以在他下次訪問您的網站時提供服務。你只會失去最後一塊。如果時間不重要,您也可以將其存儲在那裏,然後每次開始訪問您的網站時只發送一次(然後您將丟失僅訪問一次的人的數據)。 –

+0

我主要有一次購買產品的遊客。 'localStorage'將在瀏覽器支持時解決多頁面問題。感謝我認爲我現在弄明白了;) – Tim