当前位置:编程学习 > C#/ASP.NET >>

如何实现网站首页的访问量统计?

请大家帮忙,想在网站首面上实现一个访问量统计,请大家帮忙,谁有好的方法或是程序代码?急用!!!!!!!! --------------------编程问答-------------------- 去申请免费的统计就行了.为什么要自己开发? --------------------编程问答-------------------- 统计功能是可以购买的,你直接把他的接口程序写在你的程序页面上就可以了;
直接使用还是比较简单的 --------------------编程问答-------------------- http://count.51yes.com是一个流量统计网站,还行 --------------------编程问答-------------------- 在哪申请免费的?请提供网址 --------------------编程问答-------------------- google一下网站计数器,遍地都是。 --------------------编程问答-------------------- Google的网站统计非常好用。
先注册。然后给你一小断script代码,你放到需要统计的页面就行了。 --------------------编程问答-------------------- 自写一个也不难,做一个计数页面,以后想在哪里用就在哪里 --------------------编程问答-------------------- Global.asax 里
    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' 在应用程序启动时激发
        Application.Lock()
        Application("count") = 0
        Application.UnLock()
    End Sub
 Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' 在会话启动时激发
        Application.Lock()
        Application("count") = Convert.ToInt32(Application("count")) + 1
        Application.UnLock()
    End Sub
'----------------------------------------------------------

首页访问量=Convert.ToString(Application("count")) --------------------编程问答-------------------- en ..对了还得加上

if not isPostBack then

首页访问量=Convert.ToString(Application("count"))

end if --------------------编程问答-------------------- Global.asax.cs


================================

public class Global : System.Web.HttpApplication
{
protected void Application_Start(Object sender, EventArgs e)
{
uint count=0;
StreamReader srd;
string file_path=Server.MapPath ("newcounter.txt");
srd=File.OpenText (file_path);
while(srd.Peek ()!=-1)
{
string str=srd.ReadLine ();
count=UInt32.Parse (str);
}
object obj=count;
Application["counter"]=obj;
srd.Close ();            
}
 
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock ();
//数值累加 
uint jishu=0;
jishu=(uint)Application["counter"];
jishu=jishu+1;
object obj=jishu;
Application["counter"]=obj;


//将数据记录写入文件
string file_path=Server.MapPath ("newcounter.txt");
StreamWriter fs=new StreamWriter(file_path,false); 
fs.WriteLine (jishu);
fs.Close ();
        
Application.UnLock ();
} --------------------编程问答-------------------- 可以自己写,不过有免费的干嘛不用呀, --------------------编程问答-------------------- UP~ --------------------编程问答-------------------- http://www.gg1st.cn --------------------编程问答-------------------- Global.asax --------------------编程问答-------------------- 那确实,
能不动手写几不要动手写 --------------------编程问答-------------------- 有很多现成载源的东东,要手写用application --------------------编程问答-------------------- 下面程序同样写在global里 但计数不保存session 保存在配置文件里
先在配置文件中加入配置节如下
<appSettings>
    <add key="webCount" value="0"></add>
</appSettings>

再在Application_Start事件里写
using System.Xml

XmlDocument doc=new XmlDocument();
//获得配置文件的全路径
string strFileName=AppDomain.CurrentDomain.BaseDirectory.ToString()+"web.config";
doc.Load(strFileName);
//找出名称为“add”的所有元素
XmlNodeList nodes=doc.GetElementsByTagName("add");
for(int i=0;i<nodes.Count;i++)
{
//获得将当前元素的key属性
XmlAttribute att=nodes[i].Attributes["key"];
//根据元素的第一个属性来判断当前的元素是不是目标元素
if (att.Value=="webCount") 
{
//对目标元素中的第二个属性赋值
                                              att=nodes[i].Attributes["value"];
att.Value=Convert.ToInt32(nodes[i].Attributes["value"].ToString())+1;
break;
}
}
//保存上面的修改
doc.Save(strFileName);

这样做的好处就是即使程序中止或重启都不会致使计数清空 --------------------编程问答-------------------- 如果想十分确定哪条记录被访问次数,或回复次数,就要自己做
update tab set num=num+1 where ... --------------------编程问答-------------------- 1.直接去申请此类免费服务,例如Google Analytics。也有更高级的但收费的服务。

2.自己开发的话,使用IHttpModule来看法,记录每有个请求有关的信息。注意利用好缓存,否则每个请求都写数据库的话压力就很大。 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 上面我写的程序 有点问题 修正下:)

将att.Value=Convert.ToInt32(nodes[i].Attributes["value"].ToString())+1;这句改为
att.Value=Convert.ToString(Convert.ToInt32(att.Value)+1);

调试通过 
想知道当前访问量读 webCount节点就行了 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 发现问题了 上面把统计函数写在global的applicaton_start里不行 它只在程序运行时执行一次 那它记录的是程序启动的次数而非访问次数 所以计数程序应放在session_start里
完毕 --------------------编程问答-------------------- 网上申请一个吧 不要钱的 --------------------编程问答-------------------- public class Global : System.Web.HttpApplication
{
protected void Application_Start(Object sender, EventArgs e)
{
uint count=0;
StreamReader srd;
string file_path=Server.MapPath ("newcounter.txt");
srd=File.OpenText (file_path);
while(srd.Peek ()!=-1)
{
string str=srd.ReadLine ();
count=UInt32.Parse (str);
}
object obj=count;
Application["counter"]=obj;
srd.Close ();            
}
 
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock ();
//数值累加 
uint jishu=0;
jishu=(uint)Application["counter"];
jishu=jishu+1;
object obj=jishu;
Application["counter"]=obj;


//将数据记录写入文件
string file_path=Server.MapPath ("newcounter.txt");
StreamWriter fs=new StreamWriter(file_path,false); 
fs.WriteLine (jishu);
fs.Close ();
        
Application.UnLock ();
} --------------------编程问答-------------------- http://www.cnblogs.com/tishifu/archive/2007/08/30/876135.html

利用HttpModule做流量记录 画蛇添足最后一笔 --------------------编程问答-------------------- 添加全局应用程序类项目Global.asax,在文件中做如下修改

    void Application_Start(object sender, EventArgs e) 
    {
        string str1 = "";
        string path = Server.MapPath("~/count.txt");
        System.IO.StreamReader str =new System.IO.StreamReader(path);
        string ss = str.ReadLine();
        int x = Int32.Parse(ss);
        
        //在应用程序启动时运行的代码
        Application.Lock();      //临界变量,使用加锁功能,其他用户不能访问。
        Application["UserCount"] = 0;
        Application.UnLock();     //临界变量被解锁。

        Application.Lock();      //临界变量,使用加锁功能,其他用户不能访问。
        Application["StatCount"] = x;
        Application.UnLock();     //临界变量被解锁。

    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //在应用程序关闭时运行的代码
  //      string path = Server.MapPath("~/count.txt");
    //    string str=Application["StatCount"].ToString() ;

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        //在出现未处理的错误时运行的代码

    }

    void Session_Start(object sender, EventArgs e) 
    {
        //在新会话启动时运行的代码

         Application.Lock();      //临界变量,使用加锁功能,其他用户不能访问。
        Application["UserCount"] = Int32.Parse(Application["UserCount"].ToString()) + 1;
        Application.UnLock();       //临界变量被解锁。
       
        //测试某一页的访问量※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  //      String pageurl = Request.Url.ToString();//获取用户访问的页面
       
   //     if(pageurl.EndsWith ("index.aspx")) //判断访问的是否是默认页
  //      {
            //锁定变量
            Application.Lock();
            //页面访问量加一
            Application["StatCount"] =Int32.Parse(Application["StatCount"].ToString()) + 1;
            //解锁
            Application.UnLock();


   //     }
  

    }

    void Session_End(object sender, EventArgs e) 
    {
        //在会话结束时运行的代码。 
        Application.Lock();
        Application["UserCount"] = Int32.Parse(Application["UserCount"].ToString()) - 1;
        Application.UnLock();

    }
--------------------编程问答-------------------- cnzz还不错 --------------------编程问答-------------------- 自己写个计数器,放数据库里,或者找个现成的工具,比如cnzz、51la等等,很多这样的工具 --------------------编程问答-------------------- 建议不要用application,如果你网站运行一段时间,需要你去维护的时候,你会发现用application很坑爹
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,