通过用户对网站的访问,来统计该网站的总访问量.实现起来非常简单.把每一次访问的数累加即可.由于数据
更新频繁,所以数据存储在文本文件中.每次更新其中的文本文件数据即可.
然后把数字替换成相应图片.不知道为何,CSDN又不能上传图片了.CSDN的blog做得很不稳定..图略.(非常简单)
代码如下;
using
System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace Counter
... {
/**//// <summary>
/// Test 的摘要说明。
/// </summary>
public class Test : System.Web.UI.Page
...{
protected System.Web.UI.WebControls.Label Count;
long counter=1;
private void Page_Load(object sender, System.EventArgs e)
...{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
...{
Application.Lock();//进行锁定,防止非同步更新
string countfile=Server.MapPath("count.txt");
if(File.Exists(countfile))
...{
StreamReader sReader=new StreamReader(countfile);
string s;
long x;
s=sReader.ReadLine();
if(s!=null )
...{
x=Convert.ToInt64(s);
counter=x+1;
}
sReader.Close();
}
StreamWriter sWriter=new StreamWriter(countfile);
sWriter.Write((counter.ToString()));//将long类型转换为string类型
sWriter.Flush();
sWriter.Close();
Application.UnLock();
Count.Text=piclong(counter);
}
}
public string piclong(long counter)
...{
string returns="";
for(int i=1;i<=counter.ToString().Length;i++)
...{
returns+="<td><img src='Image/"+counter.ToString().Substring(i-1, 1)+".gif' width='14' height='19'></td>";
}
return returns;
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
...{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace Counter
... {
/**//// <summary>
/// Test 的摘要说明。
/// </summary>
public class Test : System.Web.UI.Page
...{
protected System.Web.UI.WebControls.Label Count;
long counter=1;
private void Page_Load(object sender, System.EventArgs e)
...{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
...{
Application.Lock();//进行锁定,防止非同步更新
string countfile=Server.MapPath("count.txt");
if(File.Exists(countfile))
...{
StreamReader sReader=new StreamReader(countfile);
string s;
long x;
s=sReader.ReadLine();
if(s!=null )
...{
x=Convert.ToInt64(s);
counter=x+1;
}
sReader.Close();
}
StreamWriter sWriter=new StreamWriter(countfile);
sWriter.Write((counter.ToString()));//将long类型转换为string类型
sWriter.Flush();
sWriter.Close();
Application.UnLock();
Count.Text=piclong(counter);
}
}
public string piclong(long counter)
...{
string returns="";
for(int i=1;i<=counter.ToString().Length;i++)
...{
returns+="<td><img src='Image/"+counter.ToString().Substring(i-1, 1)+".gif' width='14' height='19'></td>";
}
return returns;
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
...{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
说明:
1: 本代码没有过滤重复刷新页的排除(只要限制同一个IP在某一段时间不允许重复访问该页面即可)
2: 需要公司美术设计把响应图片(0,1,2,3,4,5,6,7,8,9)张图片处理好.(CGI不知道处理是否漂亮)
3: 相信大家还有更多更好处理办法.可以一块交流和学习下.