我需要讓每個用戶花費在頁面上的時間並將該信息插入到數據庫中。在Asp.Net和javascript中獲取用戶在onunload上的時間
當頁面加載時,我將一個開始時間分配給一個javascript值。對身體的onunload函數,我計算開始時間和結束時間之間的時間差,以便我可以將其插入數據庫。
我使用腳本管理器並將EnablePageMethods設置爲true。而在我呼籲onunload的JavaScript函數中,我使用pagemethods調用了一個web方法。
它似乎在Firefox中正常工作。但是在Chrome和IE中它不起作用。
你們有沒有任何想法,因爲我真的失去它。提前致謝。
腳本管理器的代碼是:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
JS代碼是類似的東西:
function ExitPage() {
try {
var leavingTime = new Date();
alert("entering: " + enteringTime);
alert("exiting: " + leavingTime);
var diff = leavingTime - enteringTime;
alert("diff: " + diff);
alert(window.location);
}
catch (Err) {
alert("Before error:" + Err.Description);
}
try {
alert("Before PageMethods Call");
PageMethods.set_path('SomePage.aspx');
PageMethods.ClosePage(diff,onSuccess,onFail);
}
catch (Err) {
alert("Error In PageMethods Block:" + Err.Description);
}
alert("Before Return");
return false;
}
function onSuccess() {
alert("Success");
}
function onFail() {
alert("Fail");
}
C#代碼是類似的東西:
[System.Web.Services.WebMethod]
public static void ClosePage(int milliseconds)
{
try{
// Insert millisecond to database...
}
catch
{ }
}
你能展示如何調用ExitPage嗎? – Kenoyer130 2010-08-10 13:54:02
確定:
– 2010-08-10 13:57:41你可能已經知道這一點,但我會說 - 無論如何 - 數據將是非常不準確的。你沒有得到關於瀏覽器崩潰的人的數據;你只需在後臺打開一個標籤就可以獲得很長的時間;而且每次重新加載此選項卡時,頻繁重新啓動瀏覽器的用戶都會得到錯誤的訪問者數量。 – Timwi 2010-08-10 14:11:37