如何在用戶請求另一個用戶之前停留在頁面上多長時間?或者直接離開該網站?跟蹤用戶在頁面上停留的時間?
基本上,我想要做一個檢查,如果用戶停留在頁面上20分鐘或更長的時間,然後做一些事情。
我相信這將需要PHP和JavaScript,但我不完全知道如何完成它。
也許在php中使用這個$_SERVER
來獲得執行時間,然後得到一個時間戳,當用戶單擊其他地方,並簡單地比較兩者?
如何在用戶請求另一個用戶之前停留在頁面上多長時間?或者直接離開該網站?跟蹤用戶在頁面上停留的時間?
基本上,我想要做一個檢查,如果用戶停留在頁面上20分鐘或更長的時間,然後做一些事情。
我相信這將需要PHP和JavaScript,但我不完全知道如何完成它。
也許在php中使用這個$_SERVER
來獲得執行時間,然後得到一個時間戳,當用戶單擊其他地方,並簡單地比較兩者?
你可以用簡單的JavaScript做到這一切。
對於單頁:
window.setTimeout(function(){
// Do stuff after 20 minutes of loading the page
// Then using jQuery you can call a PHP script to do stuff like so:
$.ajax({
url: '/myScript.php',
method: 'POST',
success: function(result){
//The request was successful and the output is stored in a variable: result
},
complete: function(){
//Do stuff when the request is completed (Ignores if success or not)
},
beforeSend: function(){
//Do something before the request is sent
}
});
}, 20 * 60 * 1000); //This is in milliseconds that's why I use the equation
對於多頁:
我建議你設置一個用戶點擊一個頁面,上如果cookie存在的每個頁面檢查時的cookie。如果存在,則每隔x秒鐘執行一次查詢,以查看自創建cookie以來20分鐘是否已經過去。
對於全阿賈克斯的文件頭:http://api.jquery.com/jQuery.ajax/
如果20分鐘過去了,我需要使用php。不是在PHP中,那麼我將如何使用你的代碼去做這件事? – Maaz 2013-03-21 21:32:26
您使用Ajax請求。我會更新答案給你,所以這很明確:) – 2013-03-21 21:33:45
也請記住標記爲回答:) – 2013-03-22 20:52:56
我已經把一些工作成一個小的JavaScript庫和服務,次用戶在網頁上多久。它具有更準確(不完美)追加用戶實際與頁面進行交互的時間長度的額外好處。它忽略了用戶切換到不同標籤頁,閒置,最小化瀏覽器等的時間。Google Analytics方法有一個缺點(據我瞭解),它只會檢查您的域處理新請求的時間,而不是始終準確。它不考慮,如果有人不再查看網頁,已經最小化瀏覽器,自去年加載你的頁面切換選項卡以3個不同的網頁等
僅供參考 - 無解的是完美的。但希望這個提供價值。您可以實施Javaacript API並自行收集統計信息,也可以使用完全爲您提供的服務。
其用法的例子:
包括在你的頁面:
<script src="https://timemejs.com/timeme.min.js"></script>
<script type="text/javascript">
TimeMe.initialize({
currentPageName: "home-page", // page name
idleTimeoutInSeconds: 15 // time before user considered idle
});
</script>
如果你想自己的時間報告給後端:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","ENTER_URL_HERE",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
xmlhttp.send(timeSpentOnPage);
TimeMe.js也支持通過WebSockets的發送時間的數據,所以你不必試圖迫使一個完整的HTTP請求到document.onbeforeunload
事件。
timemejs的網址不工作(了)。它沒有https。 – marlar 2017-02-28 16:34:47
謝謝!我已經修復了這個鏈接。 – 2017-03-04 13:53:40
這可能會有所幫助:http://stackoverflow.com/a/3893491/235710 – 2013-03-21 21:29:48
你可以安裝谷歌分析 – 2013-03-21 21:41:54
你能更具體地說明「做某事」的含義嗎?請記住,自從他們加載你的頁面以來,時間流逝*並不關聯他們已經*查看你的頁面的時間。我在瀏覽器中打開了標籤,我幾個小時都沒看過。 – 2013-03-21 21:56:09