[ASP]可以統計顯示次數並設定顯示次數的廣告輪顯代碼

來源:互聯網
上載者:User

基於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
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.