2011-11-02 42 views
4

我創建了一個網站,用戶可以在其中添加條目,將行關聯到不同的表格等等。我需要跟蹤用戶爲分數表執行的操作。什麼是記錄用戶操作和頁面瀏覽量的最有效方式?

我還需要跟蹤頁面視圖。

我想弄清楚什麼是跟蹤/記錄這個最有效的方法。

它是最好的:

  • 創建一個新的數據庫,並在此添加記錄?
  • 在網站上添加相同數據庫的記錄?
  • 使用javascript通過URL向參數服務器發送參數?

其他任何好的方法?

我不知道有多少用戶會在我的網站上發佈此消息時,但希望我會有一些流量。

回答

1

可以使數據庫錶行:

  • 日期和時間
  • IP地址
  • 當前URL
  • 引薦URL
  • 序列化$ _GET
  • 序列化$ _ POST
  • 序列號$ _COOKIE

如果您想跟蹤您的流量,這非常有用。

僞代碼:

if(!$bot) { 
    $visit = Array(
    'date' => date("Y-m-d H:i:s"), 
    'ip' => $_SERVER['REMOTE_ADDR'], 
    etc ... 
    ); 
    $sql = "INSERT INTO visits (`".join("`,`",array_keys($visit)."`) VALUES ('".join("','",array_values($visit)."')"; 
    ... 
} 

使用相同的數據庫,所以你將不得不MySQL服務器較少的連接。

在PHP腳本中(在mysql_connect是個好主意之後),我相信每次訪問INSERT對您的機器來說都不是很大的挑戰。

+0

是的,但這應該與網站上的數據庫相同?或者在另一個數據庫降低CPU?我只是JavaScript og只是PHP/SQL? – Steven

+0

再次檢查我的答案。 – Peter

+0

你會寫出完整的代碼嗎? –

0

如果你想得到可靠的結果,我不會使用Javascript,因爲用戶可能已經禁用了,或者可能試圖操縱它來以某種方式作弊。

理想情況下,我會使用一個單獨的模式,因爲這樣會擴展最好的(您可能將來希望將該模式拆分到單獨的服務器上進行處理),儘管它會使兩個模式之間的數據連接變得困難。你可以從同一個模式中的一個新表開始(只要你的代碼是很好的封裝的,你總是可以在稍後的日期將這些日誌記錄分離出來)。

0

我建議尋找一種異步解決方案(以最大限度地降低對最終用戶的性能影響)並與整體訪問者數據解決方案集成(以便可以組合各種指標的報告)。例如,Google Analytics提供Event Tracking,這樣您就可以在其訪問者,頁面瀏覽等標準指標上添加任意用戶操作數據,如您所描述的那些。

+0

我一直在看'Google Analytics API',但不知道如何使用它來獲得我想要的。關注的焦點是追蹤我網站上最受歡迎的商店和品牌。典型的URL將是http://www.mysite.com/store/?storeid=23&name=some_name – Steven

+0

我只使用GA作爲例子。但它確實有針對商店和品牌量身定製的解決方案:[自定義變量](http://code.google.com/apis/analytics/docs/tracking/gaTrackingCustomVariables.html)。 – weir

0

你有沒有使用HTML5 webstorage認爲:http://www.w3schools.com/html5/html5_webstorage.asp

你可以使用Java腳本的sessionStorage對象(數據存儲在鍵/值對)來存儲所有的頁面活動,這個對象的屬性,然後發佈此信息非常久遠的註銷操作到後端腳本,後者又維護相應的數據庫條目,我相信這樣可以通過在一個最終請求中發送頁面活動信息來避免不必要的HTTP請求和所有開銷。

您應該在每個用戶登錄時重新初始化對象。

相關問題