仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 444|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页设计用ASP统计用户在站点的停止工夫(2)

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:28:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!然后你就能够用任何体例来利用这些数据了。你能够创立ASP页面来读取数据并将数据出现给办理员,大概从数据库中将其复制到一个电子事情表中,偶然间的时分再举行剖析。

  可是要记着,利用ASPsessions会带来一些成绩。在ASP2.0中,当主使用程序目次下的嵌套目次中有global.asa的正本时,偶然sessions会丧失。另有,假如你在URL、页面文件名和页面之间的超等链接中利用字母的巨细写分歧的话,象Navigator那样的扫瞄器就把URL作为巨细写敏感来看待,因而不把特别的ASPsessioncookie发送返来,如许这类
办法的利用也是不成靠的。

  

“客户机端Cookie”手艺
  利用客户机端Cookie也很简单。完成这一事情的代码能够放在一个ASP#include文件中,然后将它拔出到站点顶用户一定会往会见的主页面中。固然,假如乐意的话能够将其拔出一切的页面。只需在用户会见的过程当中它事情一般,就可以给出准确的了局。

  设置了路径和日记文件名以后,代码界说一个子程序,将一个值附加到日记文件的,就象后面的“ASPSessions”的例子一样。假如你乐意的话,能够代替我们利用的代码来更新一个数据库表而不是一个日记文件。

<%

measurevisitlengthwithcookie



setpathandnameoflogfiletobecreated

edittosuityourownmachinedirectorylayout

remembertogivethedirectoryWriteorFull

ControlpermissionfortheIUSR_machineaccount

strFileName="C:Tempvisit_lengths.txt"



SubUpdateLogFile(intVisitLength)

OnErrorResumeNext

IfintVisitLength>0Then

  gotavalidtimesoenteritintoalogfile

  strInfo="Sessionendingat"&Now()_

    &"lastedfor"&CStr(intVisitLength)&"minute(s)."

  addusernametothelogentrystringhereifrequired

  strInfo=strInfo&"Username:"&strUserName

  SetobjFileObject=Server.CreateObject("Scripting.FileSystemObject")

  opentextfiletoappenddata(theForAppendingconstant=8)

  SetobjFile=objFileObject.OpenTextFile(strFileName,8,True)

  objFile.WriteLinestrInfo

  objFile.Close

  SetobjFile=Nothing

  SetobjFileObject=Nothing

EndIf

EndSub



读一个存在的Cookie
  如今我们能够举行本色性的事情了。代码的其他部分反省是不是有一个现存的Cookie供这个用户利用,假如有的话就确认它包括无效的日期和工夫(我们反省它必需是一个1990年以后的日期)。假如cookie是无效的,它随后反省自从这个用户装载最初一页(也就是他们实行这个代码的最初一次)是不是已过了30分钟以上。假如已凌驾了30分钟,我们就把它举动当作一个新的会见,你能够依据你的站点和需求来修正这个值。

...

getsessionstarttimefromexistingcookieifitexists

datStart=CDate(Request.Cookies("SiteVisits")("StartTime"))

IfYear(datStart)>1990Then

cookiealreadyexists,sogetvalues

datLast=CDate(Request.Cookies("SiteVisits")("LastTime"))

If(DateDiff("n",datLast,Now())>30)Then

  morethan30minutessincelastvisitsocountasnewvisit

  getlengthoflastvisitandupdatelogfile

  intMinutes=DateDiff("n",datStart,datLast)

  UpdateLogFileintMinutes

  ...

  这时候,经由过程在页面的顶端实行UpdateLogFile子程序,我们已存储了他们上一次会见的长度,这是他们前次会见的分钟数。然后就能够把我们搜集的两个值更新成以后的日期和工夫,能够入手下手纪录此次会见的长度了。

  要注重,30分钟已往以后才干看到表格中的任何条目。在实验时,你能够用一个较短的值来修正代码。



纪录会见的工夫长度
  ...

  updatevaluesforcookie

  usenewstarttimeandnewlastpageloadtime

  datStart=Now()

  datLast=Now()

Else

  ...

  假如自从最初一次实行这个代码的工夫少于30分钟,我们把它算成是以后会见的一部分,因而我们只必要更新cookie中的值作为他们前次会见的工夫:

  ...

  lessthan30minutessincelastvisitsocountasthesamevisit

  updatevaluesforcookie-justchangethelastpageloadtime

  datLast=Now()

EndIf

Else

...



设置默许值
  这里的代码只是在我们没有从会见者那边失掉一个无效的cookie时才会实行,因而我们所能做的就是利用一个以后日期和工夫的新cookie来失掉最初一次会见的入手下手和最初的数值:

...

validcookiedoesnotexistsosetvaluesforanewone

datStart=Now()

datLast=Now()

EndIf

...



创立前往Cookie值
  如今,我们已触及到了cookie中现存值的一切大概的情形,而且我们把新的cookie值存储在datStart和datLast变量中。如许我们就能够创立发送回这个会见者的cookie了。注重,每次我们都要从头创立全部cookie,由于当试图修正个中一个值而更新cookie时,会损坏别的的一切现存值:

...

createcookietosendbacktoclient

havetorecreatewholecookie-cantjustchangesomevalues

Response.Cookies("SiteVisits")("StartTime")=datStart

Response.Cookies("SiteVisits")("LastTime")=datLast

Response.Cookies("SiteVisits").path="/"applytoentiresite



makeitstayontheuserssystemforthreemonths

Response.Cookies("SiteVisits").expires=DateAdd("m",3,Now)

%>

  cookie手艺的一个成绩是当会见者从头回到你的站点时,你只能丈量他前次会见的长度。为此,我们同意cookie在他们的呆板上存在3个月,你能够修正这个工夫值来顺应你的需求。


对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,
蒙在股里 该用户已被删除
沙发
发表于 2015-1-19 13:46:29 | 只看该作者
掌握asp的特性而且一定要知道为什么。
乐观 该用户已被删除
板凳
发表于 2015-1-25 22:59:26 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
莫相离 该用户已被删除
地板
发表于 2015-2-4 12:29:30 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
透明 该用户已被删除
5#
发表于 2015-2-9 22:38:29 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
若相依 该用户已被删除
6#
发表于 2015-2-28 03:01:24 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
只想知道 该用户已被删除
7#
发表于 2015-3-9 19:52:35 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-17 01:08:03 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-23 11:46:52 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-12 01:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表