• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        創(chuàng)建彈出式“每日提示”窗口

        創(chuàng)建彈出式“每日提示”窗口

        更新時(shí)間:2020-02-09 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        * 本例程將會(huì)用到Application對(duì)象、數(shù)據(jù)庫(kù)、JavaScript、以及文件操作。

        首先,我們列一下本例程將涉及的內(nèi)容:


        1) 我們將創(chuàng)建一個(gè)用于顯示“每日提示”的彈出式窗口;
        2) 提示將在每天呈現(xiàn)不同的內(nèi)容;
        3) 提示內(nèi)容保存于數(shù)據(jù)庫(kù)中,接受由網(wǎng)上傳來的索取指令;
        4) 提示內(nèi)容更新便利,也可以隨時(shí)添加新的內(nèi)容;
        5) 提供一種手段以列出所有提示。

        下面,我們將涉及細(xì)節(jié)問題。我們只討論其中的某些內(nèi)容,其它的信息將由實(shí)際產(chǎn)生的文檔提供(什么意思?蜘蛛精也不太明白,待我們往后瞧瞧再說)。

        我需要知道當(dāng)前顯示的是哪一條提示。為了傳送當(dāng)前提示的編號(hào),我們要用到Application。同時(shí),為了在更新提示時(shí)知道這些,我們要將已顯示的提示編號(hào)存檔,保存在磁盤中。這樣做是為了防止服務(wù)器重啟動(dòng)、斷電、(反革命份子蓄意破壞、非法組織黑紅色網(wǎng)站等)事故中相關(guān)數(shù)據(jù)丟失。我們就用TIPSTORE.DAT作數(shù)據(jù)存檔文件。它包含兩行,一行是提示的編號(hào),一行是數(shù)據(jù)。

        因?yàn)檫@些值一直存放在Application中,當(dāng)運(yùn)行“每日提示”時(shí),我們就可將它們從TIPSTORE.DAT中取出。作這項(xiàng)工作最佳的方式是利用GLOBAL.ASA,在Application_OnStart中。GLOBAL.ASA文件可以取出這些值。(知道下面這句話怎么譯的人請(qǐng)舉手!)This is done, courtesy of the FileSystemObject and its support through the TextStreamObject methods:(好,手放下!既然你們都知道了,那我也就不解釋了)


        PhyPth = Server.MapPath("/tipstore.dat")
        set FilSys = CreateObject("Scripting.FileSystemObject")
        set TipFil = FilSys.OpenTextFile(PhyPth, 1)
        Application("CurTip") = TipFil.ReadLine
        Application("SymDt") = CDate(TipFil.ReadLine)
        TipFil.Close
        set TipFil = nothing
        set FilSys = nothing

        我們選擇Server.MapPath指明文件的物理位址。這可使這段用于處理DAT文件的代碼無須經(jīng)過修改即可用于多個(gè)站點(diǎn)。FilSys創(chuàng)建為FileSystemObject,TipFil創(chuàng)建為TextStreamObject。我們接下來就可從這個(gè)文件里讀數(shù)據(jù),完成后再關(guān)閉它。

        接下來,我們來看看這個(gè)更新提示的頁面。這也是我們向用戶提供提示選擇權(quán)的頁面。我也許會(huì)建議你把它放到你的主頁上,而其實(shí)它可以放到任何地方。讓我們來看一看這個(gè)名為HOME.ASP的文件的內(nèi)容:

        <%

        'Tip of the day processing
        if Application("SymDt") < Date then
            Application.Lock
            CurTip = Application("CurTip") + 1
            SymDt = date
            Application("CurTip") = CurTip
            Application("SymDt") = SymDt
            Application.Unlock

            PhyPth = Server.MapPath("/tipstore.dat")
            set FilSys = CreateObject("Scripting.FileSystemObject")
            set TipFil = FilSys.CreateTextFile(PhyPth, true)
            TipFil.WriteLine(CurTip)
            TipFil.WriteLine(CStr(SymDt))
            TipFil.Close
            set TipFil = nothing
            set FilSys = nothing
        end if

        %> ...
        直到最后,我們檢查當(dāng)前的提示是否比上一個(gè)提示更新。如果第一個(gè)用戶訪問這個(gè)導(dǎo)致新數(shù)據(jù)的頁面,我們就很容易來處理這種變化。(明白乎?反正蜘蛛精是搞蒙了。我發(fā)覺翻譯技術(shù)資料最頭痛的并不是技術(shù)內(nèi)容,而是如何去領(lǐng)會(huì)作者的意思。鄙人生性愚鈍,才疏學(xué)淺,直覺亦不甚敏銳,只有把這些內(nèi)容留給網(wǎng)友了。原文請(qǐng)見英文版)。鎖住Application,我們就不會(huì)取到重復(fù)的變化。選擇下一個(gè)提示的編號(hào),把當(dāng)前的編號(hào)存入數(shù)據(jù)中以備明天使用。由于上述的諸多原因,將處理的結(jié)果存入文檔是必要的。(除非你是玩MUD,或與網(wǎng)絡(luò)情人進(jìn)行生死戀。可以“24 hours a day, 7 days a week”地開著機(jī)器)

        為了產(chǎn)生彈出式瀏覽器窗口,我們得借助JavaScript來完成。下面的函數(shù)可以完成這個(gè)功能。

        function displayPopup(url, height, width) {

        properties = "toolbar=0,location=0,scrollbars=1,height=" + = height;
        properties = properties + ",width=" + width;
        properties = properties + ",left=0,top=0";
        popupHandle = open(url, "tipwindow", properties);

        }
        就像你看到的那樣,我們可以在這個(gè)彈出窗口中顯示任何一個(gè)網(wǎng)址。我們也可控制窗口的高度和寬度。對(duì)于不同的瀏覽器,代碼產(chǎn)生的結(jié)果是不一樣的,所以需要在IE和Netscape中作測(cè)試。我已預(yù)設(shè)了一些參數(shù)以調(diào)整我們要生成的窗口。

        Javascript要以為我們創(chuàng)建這個(gè)窗口。
        URL:

        <a href="javascript:displayPopup('popup.asp',300,300)">

        'javascript:'協(xié)議告訴瀏覽器這段代碼由JavaScript引擎解釋,而與網(wǎng)絡(luò)服務(wù)器無關(guān)。這樣我們可以讓瀏覽器處理函數(shù)時(shí)將POPUP.ASP作為地址。窗口大小為300×300象素。

        也許該讓POPUP.ASP粉墨登場(chǎng)了。

        <%

        TipNbr = Application("CurTip")

        set rstTip = CreateObject("ADODB.Recordset")
        rstTip.Open "SELECT * FROM Tip WHERE Tip=" & TipNbr, _
           "DSN=TipData"
        %>
        我們創(chuàng)建rstTip作為Recordset來訪問數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)注冊(cè)為系統(tǒng)DSN(System DSN)(注冊(cè)方法就不多說了吧,在控制面板中完成)。 DSN的名稱為'TipData'。在記錄中,我們關(guān)注存于Application中的提示編號(hào)。

        我們要從記錄中顯示相關(guān)信息。


        ... <% = rstTip("TipTitle") %> ...
        通過這種方法,我們把域'TipTitle'從當(dāng)前的記錄中記出,并將其返回至瀏覽器。我們完成顯示后,就產(chǎn)閉它,釋放對(duì)象。


        ... <%
            rstTip.Close
            set rstTip = nothing
        %> ...
        你會(huì)發(fā)現(xiàn)另有兩個(gè)ASP文件:RESETTIPS.ASP使提示編號(hào)回復(fù)到列表的開始;TIPLIST.ASP按指定的格式顯示所有的提示。

        祝各位編程愉快!

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲免费在线视频| 久久狠狠躁免费观看2020| 亚洲一区二区三区电影| 亚洲高清视频一视频二视频三| 成年人网站免费视频| 久久精品视频免费看| kk4kk免费视频毛片| 亚洲暴爽av人人爽日日碰| 亚洲区精品久久一区二区三区| 亚洲va久久久噜噜噜久久| 亚洲午夜福利精品无码| 国产成人精品免费视频大全五级| 99热在线精品免费全部my| 91青青青国产在观免费影视| 丁香花在线视频观看免费| 日本精品久久久久久久久免费| 亚洲AV日韩AV一区二区三曲| 亚洲五月丁香综合视频| 亚洲国产精品日韩在线观看| 亚洲视频免费在线观看| 亚洲情a成黄在线观看动漫尤物| 久久亚洲精品无码观看不卡| 亚洲无码黄色网址| 亚洲日本va午夜中文字幕久久| 免费一级毛片在线播放| yy6080久久亚洲精品| 亚洲精品无码国产片| 亚洲人成人77777网站不卡| 亚洲蜜芽在线精品一区| 亚洲专区先锋影音| 色婷婷六月亚洲婷婷丁香| 久久久久亚洲av无码专区导航 | 亚洲 暴爽 AV人人爽日日碰 | 成人免费视频77777| 成人免费黄色网址| 在线v片免费观看视频| 成人片黄网站A毛片免费| 欧洲美熟女乱又伦免费视频| 国产精品jizz在线观看免费| 四虎影视永久免费观看地址| 亚洲成人高清在线|