亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        網(wǎng)站動態(tài)導(dǎo)航的實現(xiàn)與研究

        2013-12-31 00:00:00郝兵
        中國科教創(chuàng)新導(dǎo)刊 2013年26期

        摘 要:本論文主要闡述在網(wǎng)站設(shè)計時如何實現(xiàn)動態(tài)導(dǎo)航的過程;本文所述設(shè)計是采用數(shù)據(jù)庫原理來管理導(dǎo)航的過程,可以實現(xiàn)二級或多級導(dǎo)航,可實現(xiàn)導(dǎo)航的后臺動態(tài)管理,從而實現(xiàn)導(dǎo)航的動態(tài)添加、修改、移動等功能。

        關(guān)鍵詞:ASP 節(jié)點 導(dǎo)航 數(shù)據(jù)庫

        中圖分類號:G4 文獻標識碼:A 文章編號:1673-9795(2013)09(b)-0148-02

        當今社會是互聯(lián)網(wǎng)時代,網(wǎng)站遍布到各個領(lǐng)域,網(wǎng)站設(shè)計制作也隨之興盛起來;無論從大公司,還是個人,都可以進行網(wǎng)站設(shè)計或制作。對于一般的建站公司,大多采用模板式批量生產(chǎn),對于個人,一般采取個人設(shè)計或制作的形式,不管是哪一種形式,都需要日后的維護和網(wǎng)站的更新,有時需要對原有網(wǎng)站版面進行重新修改,這樣經(jīng)常會涉及到導(dǎo)航的變動。由于一般情況下,網(wǎng)站的導(dǎo)航都采用的固定的方式,從而導(dǎo)致修改不方便(需要修改源代碼來實現(xiàn)),所以本文所闡述的就是如何實現(xiàn)動態(tài)導(dǎo)航,減少日后由于某種原因而導(dǎo)致修改源代碼帶來的不必要的工作量。

        1 分析過程

        動態(tài)導(dǎo)航可以應(yīng)用于各種Web編程語言,如ASP、PHP、JSP等。通過程序與數(shù)據(jù)庫結(jié)合,來實現(xiàn)動態(tài)導(dǎo)航的管理。其中在數(shù)據(jù)庫中存儲導(dǎo)航的各節(jié)點及所屬上級節(jié)點,利用程序在網(wǎng)頁中進行節(jié)點檢索,實現(xiàn)導(dǎo)航樹,將各節(jié)點創(chuàng)建在網(wǎng)點中。另外,也可以實現(xiàn)導(dǎo)航節(jié)點之間的新建、移動、刪除等操作,便于節(jié)點管理,對于節(jié)點的維護,通常放在后臺進行,前臺只是為普通用戶生成導(dǎo)航節(jié)點。

        流程如下:

        (1)設(shè)計數(shù)據(jù)庫和節(jié)點數(shù)據(jù)表(字段)。

        (2)前臺導(dǎo)航節(jié)點的顯示,包括主節(jié)點(主頁中)及分支節(jié)點(子頁面中)。

        (3)后臺導(dǎo)航節(jié)點的管理及維護(節(jié)點之間的新建、移動、刪除等操作)。

        2 設(shè)計過程

        (1)數(shù)據(jù)庫和節(jié)點數(shù)據(jù)表。

        數(shù)據(jù)庫及數(shù)據(jù)庫名的選擇可以根據(jù)實際情況進行,如,對于大型數(shù)據(jù)庫,可以采用SQL Server或MySQL來存放數(shù)據(jù),一般的小型網(wǎng)站,可以選擇相對較小的Access數(shù)據(jù)庫進行。本文所描述的數(shù)據(jù)庫采用相對較小的Access進行設(shè)計(其它數(shù)據(jù)庫設(shè)計相同)。本文描述的節(jié)點所涉及的數(shù)據(jù)表包括:navItem表,用于存放節(jié)點及子節(jié)點,上下所屬關(guān)系,可以實現(xiàn)N層所屬關(guān)系。navContent表,用于存放末節(jié)點相關(guān)詳細內(nèi)容(節(jié)點對應(yīng)的頁面文字)。

        navItem節(jié)點表中字段包括:navID(節(jié)點ID)、navName(節(jié)點名稱)、Lsort(節(jié)點順序號)、UID(父節(jié)點ID)、Leaf(是否是末節(jié)點)。

        navContent節(jié)點內(nèi)容表字段包括:navID(節(jié)點ID)、content(節(jié)點對應(yīng)內(nèi)容)。

        (2)前臺導(dǎo)航節(jié)點的顯示。

        主頁面中的首節(jié)點可以采取通過濾的方式,只需要在檢索時檢索UID為0(為0代碼是頂層節(jié)點)的節(jié)點,即可得到首節(jié)點,并放置在導(dǎo)航條上。

        子頁面中的節(jié)點檢索,是通過得到某個首節(jié)點ID后,通過遞歸算法,得到相應(yīng)子節(jié)點的方式得到。例如,如果用戶點擊了某個首節(jié)點ID=5,則可以檢索UID為5的所有子節(jié)點,利用遞歸,以此類推,查找出每個子節(jié)點的下級子節(jié)點,并利用CSS樣式及HTML代碼以列表的形式顯示在對應(yīng)的子頁面中即可。

        (3)節(jié)點的管理及維護。

        后臺節(jié)點管理最為復(fù)雜,需要實現(xiàn)節(jié)點新建、移動、刪除操作,具體作法如下:

        新建:新建節(jié)點時,要給出新建節(jié)點名稱,以及所屬的父節(jié)點(navID),并選擇是建同級節(jié)點,還是下級節(jié)點,是否是末節(jié)點(葉子)。取到相應(yīng)數(shù)據(jù)后,判斷如果是同級節(jié)點,則先獲取當前navID的父節(jié)點,將獲取到的navID作為UID(父節(jié)點ID)存放,如果是下級節(jié)點,只需要將當前節(jié)點的navID作為UID,應(yīng)用節(jié)點名稱寫入navName,如果是末結(jié)點,則將Leaf字段置1,否則說明不是末節(jié)點,則置0,寫入記錄即可。

        移動:

        獲取源節(jié)點navID,并獲取目標節(jié)點navID,選擇移動到當前節(jié)點之前還是之后,是與目標節(jié)點同級節(jié)點,還是下級節(jié)點。取得數(shù)據(jù)后,根據(jù)所選值進行判斷,如果是同級并且是之前,則先要取得目標節(jié)點的Lsort值,將當前目標節(jié)點及以下的Lsort全部向后移動。插入當前源節(jié)點(將當前源節(jié)點的Lsort值改為原目標Lsort值),如果是之后插入,只需要將目標節(jié)點后的節(jié)點向后移動,插入當前節(jié)點即可。如果是下級,則獲取目標節(jié)點的子節(jié)點(如果沒有子節(jié)點,則將當前節(jié)點的Lsort設(shè)置為1),并將目標節(jié)點的navID設(shè)置為當前節(jié)點的UID(父節(jié)點)。

        刪除:

        提示用戶是否確定刪除節(jié)點(連帶刪除所有所屬子節(jié)點)。獲取到預(yù)刪除節(jié)點的navID后,利用遞歸算法,先將所屬所有下級子節(jié)點刪除后,再將當前節(jié)點刪除,同時要將navContent表中相對應(yīng)的節(jié)點內(nèi)容一并刪除。

        3 算法代碼

        移動節(jié)點:要求先獲取目標節(jié)點ID,根據(jù)移動位置,來決定源節(jié)點的移動方式。代碼如下:(其中數(shù)據(jù)庫連接代碼部分省略)

        s_level=request.Form(\"s_level\")

        t_level=request.Form(\"t_level\")

        mi=request.Form(\"mi\")

        target=request.Form(\"target\")

        if s_level<>\"\" then

        s_sort=1

        set rs=conn.execute(\"select * from nav where nav_id=\" t_level)

        if not rs.eof then

        s_sort=rs(\"s_sort\")

        uplevel=rs(\"uplevel\")

        end if

        if mi=\"i\" then uplevel=t_level

        if target=\"b\" then sql=\"select * from nav where uplevel=\" uplevel \" and s_sort>\" s_sort \" order by s_sort DESC\"

        if target=\"f\" then sql=\"select * from nav where uplevel=\" uplevel \" and s_sort>=\" s_sort \" order by s_sort DESC\"

        set rs=conn.execute(sql)

        if not rs.eof then

        loc=rs(\"s_sort\")

        s_sort=loc+1

        end if

        while not rs.eof

        loc=rs(\"s_sort\")

        conn.execute(\"update nav set s_sort=\" s_sort \",uplevel=\" uplevel \" where nav_id=\" rs(\"nav_id\"))

        s_sort=loc

        rs.movenext

        wend

        conn.execute(\"update nav set s_sort=\" s_sort \",uplevel=\" uplevel \" where nav_id=\" s_level)

        rs.close

        set rs=nothing

        end if

        刪除節(jié)點:通過遞歸的方式實現(xiàn)先刪除子節(jié)點后,再刪除當前節(jié)點的方式實現(xiàn)。

        '遞歸刪除算法

        function loopDel(leaf)

        set rstemp=conn.execute(\"select * from nav where uplevel=\" leaf)

        while not rstemp.eof

        loopDel(rstemp(\"nav_id\"))

        rstemp.movenext

        wend

        conn.execute(\"delete from nav where nav_id=\" leaf)

        end function

        4 結(jié)語

        本設(shè)計已經(jīng)通過實驗并應(yīng)用,效果較好。但在設(shè)計過程中也還存在一些不足,尚需進一步改進,希望在以后的應(yīng)用中得到更好的效果,也希望能夠滿足不同的場合需求。

        參考文獻

        [1] 佳圖文化.ASP動態(tài)網(wǎng)站開發(fā)案例教程[M].北京:希望電子出版社,2012.

        [2] 李睦芳.Dreamweaver CS5 +ASP動態(tài)網(wǎng)站開發(fā)與典型實例[M].北京:清華大學出版社,2012.

        [2] 史桂紅.動態(tài)網(wǎng)站設(shè)計制作與維護[M].北京:水利水電出版社,2011.

        无码日日模日日碰夜夜爽| 中文字幕日韩人妻在线视频| 特级a欧美做爰片第一次| 国产免费久久精品国产传媒| 亚洲无码vr| 国产一区二区在线免费视频观看| 日本在线免费一区二区三区| 人妻中文字幕日韩av| 国产精品嫩草99av在线| 国内精品九九久久久精品| 亚洲免费观看一区二区三区| 女同欲望一区二区三区| 国产精品一区二区三久久不卡| 国产亚洲精品久久777777| 亚洲AV无码成人网站久久精品| 国产成人精品中文字幕| 国产在线一区二区三区四区| 国产成人无码一区二区在线播放| 在线a亚洲视频播放在线观看| 在线观看国产av一区二区| 浓毛老太交欧美老妇热爱乱| 欧美操逼视频| 亚洲国产精品自拍一区| 精品国产乱码久久免费看| 国产毛片视频一区二区三区在线| 国产亚洲人成在线观看| 色噜噜av亚洲色一区二区| 无遮挡边吃摸边吃奶边做| 亚洲成A人A∨久在线观看| 中文字幕一区二区三区日日骚| 国产玉足榨精视频在线观看| 女厕厕露p撒尿八个少妇| 久久精品国产屋| 国产在线精品观看一区二区三区| 精品国产麻豆免费人成网站| 性欧美暴力猛交69hd| 人妻中出精品久久久一区二 | 少妇高潮惨叫久久久久久电影| 日韩精品国产自在久久现线拍| 在线视频亚洲一区二区三区| 99re6在线视频精品免费|