一个通过ajax实现的点击量统计功能

今天写个很简单的功能只当是一个小结。

点击量的基本流程都是这样的:在点链接的时候,先转到你设定的一个统计地址,然后重定向到真实地址。

我是通过ajax来实现这个流程。以实现友情链接和广告公用这个功能。

先说说后台代码部分

首先是友情链接部分的,他是有后台代码生成HTML代码如下

_GoodLink1.Append("·<a href='" + dr["LJDZ"] + "' target='_blank' title='" + dr["LJMC"] + "' onclick=\"UpdateTraffs('LINK_TAB','LJID'," + dr["LJID"] + ",'DJCS')\">").Append(dr["LJMC"]).Append("</a>");
然后是广告部分,广告部分是由代码生成动态js再由页面引用js显示广告,下面是关键代码;

sb.Append("' target='_blank' onclick=\\");sb.Append("\"javascript:UpdateTraffs('AD_TAB','GGID'," + dv.Table.Rows[k]["GGID"] + ",'DJCS')\\");sb.Append("\">");

这个里面最重要的是\\这个变量符的使用,这样以保证在js中是以onclick=\"javascript:UpdateTraffs'AD_TAB','GGID',1,'DJCS')\"的形式

中间数据参数的传递的关键就是js代码如下

function UpdateTraffs(tabName,mainkey,keyValue,column)//要验证的表名,更新的表的主键,主键值,更新字段
    {       
        var http_request;
        if (window.XMLHttpRequest)
        {//对于Mozilla、Netscape、Safari等浏览器,创建XMLHttpRequest对象
            http_request = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {// 对于Internet Explorer浏览器,创建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();
    }

再就是另一个执行页面这里面的代码很简单就不写了。

最后附带一个存储过程如下

CREATE PROCEDURE PRO_Traffic_Update---更新点击量
@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)

posted @ 2009-01-06 22:21  pro  阅读(2630)  评论(9编辑  收藏  举报