一個(gè)通過ajax實(shí)現(xiàn)的點(diǎn)擊量統(tǒng)計(jì)功能

字號(hào):

今天 寫個(gè)很簡(jiǎn)單的功能只當(dāng)是一個(gè)小結(jié)。
    點(diǎn)擊量的基本流程都是這樣的:在點(diǎn)鏈接的時(shí)候,先轉(zhuǎn)到你設(shè)定的一個(gè)統(tǒng)計(jì)地址,然后重定向到真實(shí)地址。
    通過ajax來實(shí)現(xiàn)這個(gè)流程。以實(shí)現(xiàn)友情鏈接和廣告公用這個(gè)功能。
    先說說后臺(tái)代碼部分
    首先是友情鏈接部分的,他是有后臺(tái)代碼生成HTML代碼如下
    _GoodLink1.Append("·").Append(dr["LJMC"]).Append("");
    然后是廣告部分,廣告部分是由代碼生成動(dòng)態(tài)js再由頁面引用js顯示廣告,下面是關(guān)鍵代碼;
    sb.Append("’ target=’_blank’ onclick=");sb.Append(""javascript:UpdateTraffs(’AD_TAB’,’GGID’," + dv.Table.Rows[k]["GGID"] + ",’DJCS’)");sb.Append("">");
    這個(gè)里面最重要的是這個(gè)變量符的使用,這樣以保證在js中是以onclick="javascript:UpdateTraffs’AD_TAB’,’GGID’,1,’DJCS’)"的形式
    中間數(shù)據(jù)參數(shù)的傳遞的關(guān)鍵就是js代碼如下
    function UpdateTraffs(tabName,mainkey,keyValue,column)//要驗(yàn)證的控件ID,驗(yàn)證的結(jié)果,驗(yàn)證的類型email|user
    {
    var http_request;
    if (window.XMLHttpRequest)
    {//對(duì)于Mozilla、Netscape、Safari等瀏覽器,創(chuàng)建XMLHttpRequest對(duì)象
    http_request = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {// 對(duì)于Internet Explorer瀏覽器,創(chuàng)建XMLHttpRequest
    try
    {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
    try
    {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {}
    }
    }
    http_request.open("POST","/Function/Traffic.aspx?_tabName="+tabName+"&&_mainkey="+mainkey+"&&_keyValue="+keyValue+"&&_column="+column+"",false);
    http_request.send();
    }
    再就是另一個(gè)執(zhí)行頁面這里面的代碼很簡(jiǎn)單就不寫了。
    最后附帶一個(gè)存儲(chǔ)過程如下
    CREATE PROCEDURE PRO_Traffic_Update---更新點(diǎn)擊量
    @TabName varchar(30),
    @MainKey nvarchar(20),
    @KeyValue VARCHAR(20),
    @Column varchar(4)
    AS
    declare @sqlStr varchar(100)
    SET @sqlStr=’UPDATE ’+@TabName+’ SET ’+@Column+’=’+@Column+’+1 where ’+@MainKey+’=’’’+@KeyValue+’’’’
    exec(@sqlStr)