ASP教程之统计图片的点击率
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。假如你跟我一样,本人的主页是供应各类图片服务的,那末晓得哪些图片受接待,哪些不受接待是相称有需要的。在这里,向人人先容一下我用ASP怎样办理这个成绩的。 我们起首来剖析一下。一样平常作为图片站点,起首显现出来的是一些小尺寸的缩略图,点击后才显现出年夜图。因而,我们能够在小图与年夜图之间的链接上做文章,让小图的链接指向一个ASP文件,由这个ASP文件将点击纪录上去,然后再显现出年夜图,道理是相称复杂的。起首,我们要创建一个用来纪录点击的数据库文件,我用的是ACCESS97,别的的数据库也能够。在这个库中,只必要一个表,取名就叫1吧。数据库字段有三个:picturename(字符型),clicktimes(数字型),starttime(日期型),第一个是图片的名字,第二个是点击的总次数,第三个是第一次点击的工夫。注重,字段名不克不及用汉字。
建好库后,接上去是界面和程序的体例。在FrontPage2000中新建一个HTML文件,拔出几张图片,并用缩略图功效把它缩成小图,保留。再新建一个ASP文件,它的源代码以下:
<%Server.ScriptTimeOut=60//设置超不时间
Response.Expires=0%>//设置网页的过时工夫为0
<!--#includefile=″adovbs.inc″-->//调进VB常量申明文件
<%
Dimpicturename1,clicktimes1,starttime1//声名用来保留数据的变量。
Dimconnection,record //声名用来翻开数据库的变量。
Picturename1=Request.QueryString(″picturename″)//获得图片的名字。
Setconnection=Server.CreateObject(″ADODB.Connection″)
Setrecord=Server.CreateObject(″ADODB.Recordset″)
Record.locktype=3//设置record工具的锁定体例
Record.cursortype=adopenforwardonly//设置游标的偏向只能向前
dsn=server.MapPath(″access.dsn″)//获得access.dsn在服务器的路径
mdb=server.mappath(″click.mdb″) //获得click.mdb的路径
mydsn=″filedsn=″+dsn+″;dbq=″+mdb+″;″
connection.Openmydsn
//以上这些是翻开数据库的操纵。个中access.dsn是一个ACCESS数据库的设置文件。
上面,我们要获得在数据库中图片名字对应的点击次数。起首在库中查找有无这个名字。
sql=″SElect*from1wherepicturename=′″&picturename1&″′″//构建SQL语句。
Record.opensql,connection//实行SQL查询
查询后,我们要判别一下库中有无对应的纪录。假如没有就要新建一个:
ifrecord.EOF=truethen
thistime=1
currenttime=date
Record.close()//封闭record这个工具,上面要从头以另外一种体例翻开
sql=″insertinto1(picname,clicktimes,starttime)values(′″&picturename1&″′,′″&thistime&″′,′″&currenttime&″′)″ ′构建SQL拔出语句
setrecord=connection.Execute(sql)
else
totaltimes=cint(record(″clicktimes″))//从数据库中获得之前存进的点击次数
totaltimes=totaltimes+1//加上这一次
record(″clicktimes″)=totoletimes//从头赋值
record.updata()//更新数据库中的纪录
endif
%>
以上,点击纪录的事情就基础上完成了,万万别忘了,还要把图显现出来。这也很复杂,只需在<body>与</body>间到场一句>就能够了。假如必要的话,还能够写上总的点击次数:<%Response.Writepicturename1&″这幅图片统共被点击″&totaltimes&″次″%>
到此为止,ASP部分就完成了。在前一个HTML文件中还要作些小修改。把一切的
<ahref=″文件名″></a>
统统都改成<ahref=″jilu.asp?picturename=文件名></a>个中jilu.asp是方才的谁人ASP文件名。
假如就纪录点击情形而言,下面这些基础上就充足了。可是如许纪录下的的了局必要下载上去才晓得,这仿佛有点太原始了。以是上面还要到场在线统计的功效。
用来统计的程序,应当可以按升序或降序分列纪录,显现天天的点击率,假如条目太多,另有需要到场翻页功效。
检察统计只是让站长做的事情,以是设置一个暗码是很有需要的。因而,新建一个HTML文件,拔出一个表单:
<formmethod=″POST″action=″tongji.asp″>
<p><inputtype=″radio″value=″升″checkedname=″R1″>升序分列
<inputtype=″radio″name=″R1″value=″降″>降序分列</p>
<p><inputtype=″text″name=″T1″size=″20″><inputtype=″submit″value=″提交″name=″B1″><inputtype=″reset″value=″全体重写″name=″B2″></p>
<p> </p>
</form>
上面是tongji.asp的内容:
<%
if(request.From(T1)″1234″)then
response.write″你不克不及进进!!!″
response.end
endif
Setconnection=Server.CreateObject(″ADODB.Connection″)
Setrecord=Server.CreateObject(″ADODB.Recordset″)
Record.locktype=3
Record.cursortype=adopenforwardonly
dsn=server.MapPath(″access.dsn″)
mdb=server.mappath(″click.mdb″)
mydsn=″filedsn=″+dsn+″;dbq=″+mdb+″;″
connection.Openmydsn
ifrequest.Form(R1)=″升″ then
sql=″select*from1orderbyclicktimes″
Else
Sql=″select*from1orderbyclicktimesDESC″
Endif
Record.opensql,connection//实行SQL
cuttenttime=date
%>
上面是显现的部分,这里用一个表格来分开各类数据:
<tableborder=″1″width=″100%″>
<%whilerecord.eof=false
ifrecord(″clicktimes″)=0thenrecord.MoveNext%>//在数据库中有一些数据其实不一般,要扫除它们。
<tr>
<tdwidth=″33%″><%=record(″picname″)%> </td>
<tdwidth=″33%″><%=record(″clicktimes″)%> </td>
<tdwidth=″34%″><%=csng(record(″clicktimes″)/(datediff(″d″,record(″starttime″),currenttime,0,0)+1))%> </td>
</tr>
<%
record.MoveNext//游标向下移
wend%>
</table>
到这里,一个复杂的图片点击纪录、统计的ASP程序就完成了,但愿人人在这个基本上添油加醋.
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 那么,ASP.Net有哪些改进呢? 我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
页:
[1]