zoukankan      html  css  js  c++  java
  • [ASP]可以统计显示次数并设定显示次数的广告轮显代码

    基于AC数据库,本来做来是每次都要更新数据库的显示次数到数据库的。但实践证明,上了140的在线量该位置就要报冲突错误了。后台就改写成如下方式放到application中,每n分钟或其中的1个BANNER显示完毕触发向数据库中更新,实践证明效率大大滴好了转。以前经过实践推敲的好些代码,现在而今眼目下都不用了。慢慢贴出来吧。自己看代码建立相应表。及后台。

    Call BannerDisPlay()
    Sub BannerDisPlay()    
        
    Dim ArrBanner,ArrLen,BannerData,PRVDBSTATE
        BannerData 
    = Application("BannerData")
        ArrLen 
    = UBound(BannerData)
        
    If ArrLen = 0 Then
            Response.Write 
    "该广告位没有数据"
            
    Exit Sub
        
    Else
            
    Dim b
            
    Randomize
            b 
    = Int((ArrLen * Rnd))
            
    If BannerData(b,7= False Then
                Response.Write 
    "<a href='BanenrGo.asp?ID="&BannerData(b,0)&"' target='_blank'><img src='"& BannerData(b,2&"' width='468' height ='60' border='0'></a>"
            
    Else
                Response.Write(BannerData(b,
    6))
            
    End If
            
    If Application("BannerData")(b,5- BannerData(b,4> 1 Then
                
    If DBSTATE = False Then
                    DbOpen()
                    PRVDBSTATE 
    = True
                
    End If
                
    Dim cs
                Conn.Execute(
    "update [AD_Banner] set DisTimes="& BannerData(b,5)+1 &",EndDate=now,HasOver=True where ADID="& BannerData(b,0))
                
    Set cs = Server.CreateObject("ZKXP.Cash")
                
    Set cs.Conn = Conn
                Application.Lock()
                cs.LoadBannerData
                Application.UnLock()
                
    Set cs = nothing
                
    'Response.Write "<b>reload</b><br>"
            Else
                
                BannerData(b,
    5= BannerData(b,5+ 1
                Application.Lock()
                    
    'Response.Write "<br>addOneID="& BannerData(b,0) &"<br>"
                    'Response.Write "存入之前显示AP="&Application("BannerData")(b,5)&"Arr="&BannerData(b,5)&"<br>"
                    Application("BannerData"= BannerData
                    
    'response.Write "存入之后显示AP="& Application("BannerData")(b,5) &"<br>"
                Application.UnLock()            
            
    End If
            
            
    If DateDiff("n",Application("BannerDataSaveDate"),now>= SBDtDif Then'SBDtDif变量定义在UserBin
                Application.Lock()
                    Application(
    "BannerDataSaveDate"= now
                Application.UnLock()
                
    Dim i
                
    If DBSTATE = False Then
                    DbOpen()
                    PRVDBSTATE 
    = True
                
    End If
                
    for i = 0 to uBound(Application("BannerData")) - 1
                    Conn.Execute(
    "update [AD_Banner] set DisTimes="&Application("BannerData")(i,5)&" where ADID="&Application("BannerData")(i,0))
                
    next
            
    End If
            
        
    End If
        
    If PRVDBSTATE = True Then DbClose()
        BannerData 
    = null
    End Sub
  • 相关阅读:
    xml学习_上篇
    回首博客 年满一周年,记录90个点滴瞬间
    编写PHP代码总结
    代码高亮插件SyntaxHighlighter
    记忆,是一座沙城!
    dreamweaver中的 map怎么调用?_制作热点图像区域
    手机端rem如何适配_rem详解及使用方法
    彻底弄懂css中单位px和em,rem的区别
    JavaScript学习方法
    10条建议让你创建更好的jQuery插件
  • 原文地址:https://www.cnblogs.com/zkxp/p/363454.html
Copyright © 2011-2022 走看看