逍遥一派 发表于 2015-1-16 22:40:58

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为移动电话互联网客户服务。

admin 发表于 2015-1-19 21:13:23

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

若相依 发表于 2015-1-25 08:02:27

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

柔情似水 发表于 2015-2-2 16:18:38

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

仓酷云 发表于 2015-2-8 01:14:55

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

灵魂腐蚀 发表于 2015-2-23 21:05:32

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

活着的死人 发表于 2015-3-7 10:25:15

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

透明 发表于 2015-3-14 21:36:09

那么,ASP.Net有哪些改进呢?

分手快乐 发表于 2015-3-21 14:25:53

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
页: [1]
查看完整版本: ASP教程之统计图片的点击率