現在第三方記錄網頁瀏覽時間的插件那么多,我們還需要自己書寫嗎?答案是需要的。 因為現在的第三方記錄只能記錄訪客的信息,不能記錄您想的要的會員的數據,如果讓您記錄會員的數據,如果讓您統計某一類的會員訪問平均時間您到哪里找給他呢?
我們自己書寫一個頁需要jquery與ashx配合才可以使用,下面我們就來書寫這一個方法吧。
頁我們需要書寫一個jquery 方法先我們定義一個得到當前的時間的方法
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
之后我們才是我們的js代碼
$(document).ready(function () {
//定義一個日期
var d = new Date();
//得到我們網頁開始訪問的時間
var starttime = d.Format("yyyy-MM-dd hh:mm:ss");
//關鍵步驟在于這一個jquery網頁關閉事件,測試通過關閉是可以觸發到的 $(window).bind('beforeunload', function () {
//將信息通過ajax提交出來
$.ajax({
type: "GET",
//這是需要的地址,與下面的建立的ashx的地址要一樣 url: "/ashx/sz886.ashx",
dataType: "text",
//這一步是我們傳遞過去當前的網頁
data: { starttime: starttime, url: window.location.pathname },
success: function (data) {
}
});
});
});
根據上面的Jquery代碼,我們就已經書寫完成了重要的部分了,下面我們就要書寫.net部分
我們新建一個叫sz886.ashx
然后我們只需要將我們傳過來的值保存到數據庫就可以了
string url = context.Request.QueryString["url"];
DateTime starttime = new DateTime();
DateTime.TryParse(context.Request.QueryString["starttime"], out starttime);
if (starttime.Equals(null))
{
return;
}
//這一些比較關鍵,是得到日期差,得到多少秒的關鍵 TimeSpan ts = (TimeSpan)Convert.ToDateTime(endtime).Subtract(Convert.ToDateTime(starttime));
//得到時間
int Seconds= ts.Seconds;
//保存數據庫就可以了。
如有不懂聯系獨占網絡。