小魔女 发表于 2015-1-16 23:32:24

ASP教程之一个基于ASP的题目告白办理体系(三)

结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。告白3、显现告白

  这部分程序次要有以下四个目标:第一,参考各个告白的显现品级,随机选择本次显现的告白;第二,更新数据库中该告白的显现次数;第三,输入题目告白的HTML代码;第四,在数据库汗青表中保留显现和点击汗青记录。

  完成上述功效的剧本次要有两个:

ShowBanner.asp:断定本次挪用要显现的告白,更新显现次数纪录,天生题目告白的HTML代码。
Redirect.asp:重定向页面。ShowBanner.asp天生的告白HTML代码将挪用该剧本,由该剧本纪录点击汗青数据、重定向到告白客户指定的页面。
  本文下载包中的ShowBanner.asp同时也是一个告白显现示例页面,每次革新该页面能够显现出分歧的告白。上面我们依照ShowBanner.asp的实行历程,先容个中的关头步骤。

  ㈠ 盘算显现品级总和

  本体系接纳的告白选择算法是:起首盘算出以后一切可用告白的显现品级总和,然后依据这个和值天生一个随机数,再依据这个随机数来断定本次显现的告白。上面的代码用于盘算可用告白的显现品级总和:

 nTotalWeight=0
 strSql="SELECTSUM(Weight)AsSumWeightFROM"+_
 "AdvertisementWHEREStatus=1"
 rs.OpenstrSql,cn
 Ifnotrs.EOFandnotrs.BOFThen
 nTotalWeight=rs.Fields("SumWeight")
 nTotalWeight有大概为空值
 IfIsNull(nTotalWeight)Then
 nTotalWeight=1
 EndIf
 EndIf
  在盘算出nTotalWeight以后,我们能够依据该值天生一个随机数,以下所示:

 Randomize
 nRandomNumber=Int(Rnd*nTotalWeight)+1
  程序将从数据库读取可用告白纪录(拜见上面的代码),累计已读取纪录的weight总和,当这个新的总和凌驾这里天生的随机数时,就将以后纪录作为本次显现的告白。

  ㈡ 剖析可用告白纪录

  接上去的义务是实行一个查询,提取一切可用告白纪录。如前所述,在遍历这些可用告白纪录时,纪录已读取纪录的weight值总和nWeightCount,当nWeightCount即是或年夜于后面天生的随机数nRandomNumber时,程序就以为找到了本主要显现的告白。详细以下:

 strSql="SELECT*FROMAdvertisementWHEREStatus=1"
 rs.Close
 rs.OpenstrSql,cn
 bDone=false
 已读取纪录的Weight值总和
 nWeightCount=0
 
 扫除变量
 strImageURL=""
 strAltText=""
 strLink=""
 nImageWidth=0
 nImageHeight=0
 nWeight=0
 nAdID=0
 nAdvertiserID=0
 nViewLimit=0
 nImpressions=0
 
 Whilenotrs.EOFandnotrs.BOFandnotbDone
 将数据库值赋给变量
 这类算法倒霉于效力,但简化了把持布局
 strImageURL=rs.Fields("ImageURL")
 strAltText=rs.Fields("AltText")
 strLink=rs.Fields("Link")
 nImageWidth=rs.Fields("ImageWidth")
 nImageHeight=rs.Fields("ImageHeight")
 nWeight=rs.Fields("Weight")
 nAdID=rs.Fields("AdID")
 nAdvertiserID=rs.Fields("AdvertiserID")
 nViewLimit=rs.Fields("ViewLimit")
 nImpressions=rs.Fields("Impressions")
 nWeightCount=nWeightCount+nWeight
 rs.MoveNext
 nWeightCount是不是即是或年夜于随机变量值
 IfnWeightCount>=nRandomNumberorrs.EOFThen
 bDone=true
 EndIf
 Wend
  ㈢ 更新以后告白的显现次数

  在断定本主要显现的告白以后,程序就能够更新该告白纪录的Impressions字段。假如新的Impressions值凌驾了显现次数限定(nViewLimit),还必须设置Status字段为0(即本告白不成再显现)。完成代码以下:

 nStatus=1
 nImpressions=nImpressions+1
 IfnImpressions>=nViewLimitThen
 nStatus=0
 EndIf
 strSql="UPDATEAdvertisementSetStatus="+_
 CStr(nStatus)+",Impressions="+_
 CStr(nImpressions)+"WHEREAdID="+_
 CStr(nAdID)
 rs.Close
 rs.OpenstrSql,cn
  ㈣ 天生HTML代码

  在完成上述筹办事情以后,接上去就能够输入显现告白的HTML代码。所输入的HTML代码能够分红以下几个部分:

 重定向页面-->方针URL-->其他参数-->图片标志
  为何不是间接链接到告白客户指定的URL呢?这是因而,固然这类办法更复杂,但我们但愿可以纪录告白的点击数目,在重定向页面中我们就能够更新该告白的ClickThroughs字段值。

  在显现告白的HTML代码中,重定向页面本文假定为Redirect.asp,方针URL来自数据库,其他参数次要是告白编号、告白客户编号等,Redirect.asp使用这些参数纪录点击汗青记录。详细完成以下:

 strHtmlCode=_
 "<ahref=Redirect.asp?"+_
 "Link="+strLink+_
 "&AdvertisementID="+CStr(nAdID)+_
 "&AdvertiserID="+CStr(nAdvertiserID)+Chr(34)+_
 "target=newFrame><"+Chr(13)+Chr(10)+_
 "></A>"+Chr(13)+Chr(10)
  这里的strHtmlCode即为显现告白的HTML代码。

  ㈤ 纪录其他信息

  为了给告白客户供应</p>ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!

活着的死人 发表于 2015-1-29 06:37:04

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

蒙在股里 发表于 2015-2-5 23:23:25

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

若天明 发表于 2015-2-14 04:53:52

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

若相依 发表于 2015-3-4 04:39:10

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

再见西城 发表于 2015-3-11 16:52:02

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

小妖女 发表于 2015-3-19 02:22:27

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

乐观 发表于 2015-3-27 04:48:37

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
页: [1]
查看完整版本: ASP教程之一个基于ASP的题目告白办理体系(三)