2016-01-21 66 views
1

有人可以用我的腳本Ajax幫助我嗎?我想算訪問者在我的網站上花費的時間和變量發送到PHP頁面:使用AJAX計算訪問者在我的網站上花費的時間

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
var start; 

$(document).ready(function() { 
start = Date.getTime(); 

$(window).unload(function() { 
    end = Date.getTime(); 
    $.ajax({ 
    url: 'timer.php', 
    type:'POST', 
    async: false, 
    data: { 
      'timeSpent': end - start, 
      x:'hello' 
      } 
    }) 
}); 
} 

和timer.php我把:

+0

了參考http://stackoverflow.com/questions/4667068/how-to-measure-a-time-spent-on-a-page – Dhara

回答

1

看來你輸入了錯誤的類型ATTR:類型= 'POST' 的類型應該爲: 'POST'

編輯:在仔細看(而且,在你選擇的DevTool檢查),更出現..

1)啓動= Date.getTime ();不會爲你工作。首先將一個新的Date()對象分配給一個startDate變量,然後將其getTime()返回賦給變量start 您應該對您的最終變量值做同樣的處理,您最好通過調用var end ,就像你在開始時一樣。並非所有的瀏覽器對此都是嚴格的,但它會爲您的代碼/編碼一致性創造奇蹟。

2)窗口卸載事件偵聽器塊不必是文檔準備好聽衆,這也似乎你忽略了正確的關閉中..

那麼試試這個:

var start, end, timeSpent; 

$(document).ready(function() { 
    var dStart = new Date(); 
    start = dStart.getTime(); 
}); 

$(window).unload(function() { 
    var dEnd = new Date(); 
    end = dEnd.getTime(); 
    timeSpent = end - start; 
    $.ajax({ 
     url: 'timer.php', 
     type: 'POST', 
     async: false, 
     data: { 
      timeSpent: timeSpent, 
      x:   'hello' 
     }, 
     success: function(){ 
      console.log('yay'); 
     } 
    }); 
}); 
+0

我修正了它,但仍然沒有工作 –

+0

然後,我的朋友,你必須是更具體的問題,你遇到了什麼問題,因爲這個解決方案在我的最終工作正常。我應該已經設置了一個codepen,但是看到你花了多少時間和精力去問這個問題,我覺得我已經很久了。 – Stacky

相關問題