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是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊! Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
页:
[1]