如何实现网站首页的访问量统计?
请大家帮忙,想在网站首面上实现一个访问量统计,请大家帮忙,谁有好的方法或是程序代码?急用!!!!!!!! --------------------编程问答-------------------- 去申请免费的统计就行了.为什么要自己开发? --------------------编程问答-------------------- 统计功能是可以购买的,你直接把他的接口程序写在你的程序页面上就可以了;直接使用还是比较简单的 --------------------编程问答-------------------- 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