仓酷云

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

[学习教程] ASP网页设计用ASP统计用户在站点的逗留工夫

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:27:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的东西可是什么都要收钱的啊!统计|站点     固然凡是利用的点击注册手艺可以盘算出你的Web站点失掉几何点击,然而,假如可以晓得会见者在站点上逗留了多长工夫就更好了。假如有上千人点击并翻开了你的主页,但他们却在大度的“接待”图形完整下载之前就已跑到其余站点去了,如许,你所花在建立和保护站点上的投资就没有失掉很好的报答。

  有两种很好的办法用来纪录用户在你的站点上消费了几何工夫。第一个是利用基于ASP办事器的sessions,第二是经由过程坚持客户机端cookies。要记住,利用sessions将给办事器的处置任务增添负荷,然而它们的确供应了最简约的办法。还有一点要注重,那就是假如用户真个阅读器不克不及撑持cookie功效,那末这两种办法都不克不及任务。

  

ASP Session 手艺
  利用ASP Session 是请求你把这个session 入手下手确当前工夫保留成谁人用户的session 级别变量,这将要用到你的站点或虚拟途径下的global.asa 文件中的Session_onStart 事务句柄。然后,在Session_onEnd 事务句柄中,你就能够盘算出session 延续的工夫,并将这个了局写到日记文件或数据库中。在这里的例子中利用了日记文件:

< script language="VBScript" runat="server" >

Sub Session_onStart()

‘save the time that the session started

Session("StartTime") = Now()

End Sub


Sub Session_onEnd()

‘get the time that the user last loaded a page

‘assumes the default session timeout of 20 minutes


On Error Resume Next


‘set path and name of log file to be created

‘edit to suit your own machine directory layout

‘remember to give the directory Write or Full

‘Control permission for the IUSR_machine account

strFileName = "C:Tempvisit_lengths.txt"

datStartTime = Session("StartTime")

datEndTime = DateAdd("n", -20 , Now())

intMinutes = DateDiff("n", datStartTime, datEndTime)

If intMinutes > 0 Then

   ‘got a valid time so add it to the log file

   strInfo = "Visit ending at " & datEndTime _

     & " lasted for " & intMinutes & " minute(s)."

   ‘add user name to the log entry string here if required

   ‘strInfo = strInfo & " User name: " & strUserName

   Set objFileObject = Server.CreateObject("Scripting.FileSystemObject")

   ‘open text file to append data (the ForAppending constant = 8)

   Set objFile = objFileObject.OpenTextFile(strFileName, 8, True)

   objFile.WriteLine strInfo

   objFile.Close

End If

End Sub

< /script >

  你可以看到,当session 停止时,咱们从以后工夫中减去了session 的timeout的数值,假如思索到用户装载最初一页时所消费的工夫,减去的值可以略微小一点。这个数目由你去猜,由于用这个手艺其实不能测出实践值。

  注重,假如你在任何页面中利用了ASP的 Session.Abandon 办法,就不克不及失掉准确的了局。由于这类办法当即中止session,如许,从实践工夫中减去session长度就会给出一个不准确的会见工夫(有时分乃至是正数)。更糟的是,在ASP 2.0版本中,这类办法还常常完全不克不及启动Session_OnEnd事务。

  在某些站点上利用一种“中断办事器操作”的链接来启动Session.Abandon办法,然而依据经历,很少有效户会去点击它。他们只是转到另外一个站点,让session自行中止。

  这是咱们从日记文件中失掉的一些纪录:

  Visit ending at 6/5/00 1:05:26 AM lasted for 2 minute (s).

  Visit ending at 6/5/00 1:06:14 AM lasted for 47 minute(s).

  Visit ending at 6/5/00 1:12:18 AM lasted for 22 minute(s).

  Visit ending at 6/5/00 1:29:54 AM lasted for 9 minute(s).

  假如用户会见的工夫少于1分钟(好比说,他们的session入手下手后过了1分钟还没能装载另外一页),用咱们的代码就不显示在列表中。从全部session长度中减去这个session的timeout ,就会失掉0,在这一点咱们的代码就将其舍弃:

  If intMinutes > 0 Then ?

  固然你可以修正代码以顺应本人的需求。

  注重:要记住session停止后才入手下手写日记文件的条目。你不克不及立即看到它们。假如想试着更快地看到了局,可以在页面上修正Session.Timeout 的属性。

  

在数据库中纪录了局
  要将盘算的了局纪录数据库中而不是日记文件中,可以创立一个恰当的SQL INSERT声明,履行它来更新一个你已供应的数据库表:

...

strSQL = "INSERT INTO YourTable (UserName, SessionEnd, " _

& "SessionLength) VALUES (‘" & strUserName & " ‘, #" _

& datEndTime & "#, " & intMinutes & ")"

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.open "DSN=yourdsn;UID=username;PWD=password;"

oConn.Execute strSQL

Set oConn = Nothing

...

  然后你就能够用任何体例来利用这些数据了。你可以创立ASP页面来读取数据并将数据出现给办理员,或从数据库中将其复制到一个电子任务表中,有工夫的时分再停止剖析。

  然而要记住,利用ASP sessions会带来一些成绩。在ASP 2.0中,当主使用法式目次下的嵌套目次中有global.asa 的正本时,有时sessions 会丧失。还有,假如你在URL、页面文件名和页面之间的超等链接中利用字母的巨细写分歧的话,象Navigator那样的阅读器就把URL作为巨细写敏感来看待,因而不把特别的ASP session cookie发送回来,如许这类办法的利用也是不成靠的。

  

“客户机端Cookie”手艺
  利用客户机端Cookie也很轻易。完成这一任务的代码可以放在一个ASP #include 文件中,然后将它拔出到站点顶用户一定会去会见的主页面中。固然,假如情愿的话可以将其拔出一切的页面。只需在用户会见的过程当中它任务正常,就可以给出准确的了局。

  设置了途径和日记文件名以后,代码界说一个子法式,将一个值附加到日记文件的,就象后面的“ASP Sessions”的例子一样。假如你情愿的话,可以代替咱们利用的代码来更新一个数据库表而不是一个日记文件。

< %

‘measure visit length with cookie


‘set path and name of log file to be created

‘edit to sui</p>  国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了
第二个灵魂 该用户已被删除
沙发
发表于 2015-2-16 02:38:54 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
老尸 该用户已被删除
板凳
发表于 2015-2-16 14:54:12 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
若天明 该用户已被删除
地板
发表于 2015-2-22 23:44:43 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
冷月葬花魂 该用户已被删除
5#
发表于 2015-3-3 08:57:43 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
admin 该用户已被删除
6#
发表于 2015-3-11 09:46:35 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
蒙在股里 该用户已被删除
7#
发表于 2015-3-11 15:07:30 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
再见西城 该用户已被删除
8#
发表于 2015-3-13 10:07:34 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
乐观 该用户已被删除
9#
发表于 2015-3-20 19:11:12 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
金色的骷髅 该用户已被删除
10#
发表于 2015-4-2 11:22:59 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
小妖女 该用户已被删除
11#
发表于 2015-4-5 11:10:57 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
透明 该用户已被删除
12#
发表于 2015-4-11 03:43:58 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
飘灵儿 该用户已被删除
13#
发表于 2015-4-16 22:12:59 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
深爱那片海 该用户已被删除
14#
发表于 2015-4-26 02:45:36 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
兰色精灵 该用户已被删除
15#
发表于 2015-6-4 01:58:02 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
山那边是海 该用户已被删除
16#
发表于 2015-6-9 17:36:56 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
分手快乐 该用户已被删除
17#
发表于 2015-6-14 16:26:09 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
简单生活 该用户已被删除
18#
发表于 2015-6-24 15:38:39 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
飘飘悠悠 该用户已被删除
19#
发表于 2015-6-27 01:57:00 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-15 19:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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