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

        ?

        基于Ajax的動(dòng)態(tài)Web樹狀菜單的設(shè)計(jì)與實(shí)現(xiàn)

        2010-08-24 01:46:58郜亞麗
        制造業(yè)自動(dòng)化 2010年15期
        關(guān)鍵詞:樹狀服務(wù)器端數(shù)據(jù)量

        郜亞麗

        GAO Ya-li

        (濟(jì)源職業(yè)技術(shù)學(xué)院,濟(jì)源 454650)

        0 引言

        樹型結(jié)構(gòu)是一類應(yīng)用非常廣泛的數(shù)據(jù)結(jié)構(gòu)。隨著Internet的發(fā)展,樹型結(jié)構(gòu)的應(yīng)用也越來越廣泛。如操作系統(tǒng)的文件目錄就是一個(gè)典型的樹結(jié)構(gòu)。樹狀菜單是為了方便查找每個(gè)結(jié)點(diǎn)而實(shí)現(xiàn)的導(dǎo)航菜單,它通過展開和折疊來進(jìn)行瀏覽用戶所需要的內(nèi)容。目前,在互聯(lián)網(wǎng)上廣泛存在、應(yīng)用的樹型結(jié)構(gòu)一般有兩種:靜態(tài)和動(dòng)態(tài)結(jié)構(gòu)。靜態(tài)結(jié)構(gòu)實(shí)現(xiàn)簡單,缺點(diǎn)是靜態(tài)導(dǎo)致不能改變樹的結(jié)構(gòu)和內(nèi)容,無法反映樹的節(jié)點(diǎn)信息的變化;而動(dòng)態(tài)構(gòu)造樹,雖然可以動(dòng)態(tài)增加、刪除、更新節(jié)點(diǎn)信息,但是每交互一次,就要刷新整個(gè)頁面一次,從而浪費(fèi)了大量的網(wǎng)絡(luò)資源,不適合于菜單數(shù)據(jù)量大的場合。本文提出了一種基于Ajax技術(shù)的動(dòng)態(tài)獲取樹狀菜單的方法,大大提高了菜單的運(yùn)行性能,節(jié)約了網(wǎng)絡(luò)資源。

        1 Ajax概述

        1.1 Ajax的定義

        Ajax(Asynchronous JavaScript and xML)是Web2.0網(wǎng)站開發(fā)中的熱門應(yīng)用技術(shù),其基本表現(xiàn)是在不刷新整個(gè)頁面的情況下,實(shí)現(xiàn)對頁面局部的更新。Ajax并不是一項(xiàng)新的技術(shù),實(shí)際上是多種技術(shù)的綜合,Ajax包括Javascript、XHTML和CSS、DOM、XML和 XSTL、XMLHttpRequest等技術(shù)[1]。其中:使用XHTML和CSS實(shí)現(xiàn)標(biāo)準(zhǔn)化的呈現(xiàn)界面;使用DOM實(shí)現(xiàn)動(dòng)態(tài)的顯示和交互;使用XML和XSTL進(jìn)行數(shù)據(jù)交換與處理;使用XMLHttpRequest對象實(shí)現(xiàn)與服務(wù)器的異步數(shù)據(jù)通信,也是Ajax中最重要的部分;使用Javascript將 XHTML、DOM、XML、XMLHttpRequest綁 定和處理所有數(shù)據(jù)。

        1.2 Ajax的特點(diǎn)

        Ajax具有減輕服務(wù)器的負(fù)擔(dān)、不用刷新整個(gè)頁面實(shí)時(shí)更新局部內(nèi)容,減少用戶心理和實(shí)際的等待時(shí)間、帶來更好的用戶體驗(yàn)、可以調(diào)用外部數(shù)據(jù)、基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序、具有廣泛的兼容性和彈性,對各種Web應(yīng)用解決方案都能夠適用、進(jìn)一步促進(jìn)頁面呈現(xiàn)和數(shù)據(jù)的分離等特點(diǎn),其中Ajax的一個(gè)最大特點(diǎn)就是不刷新整個(gè)頁面便可向服務(wù)器傳輸或讀寫數(shù)據(jù)[2]。

        2 使用Ajax技術(shù)實(shí)現(xiàn)樹狀菜單的優(yōu)點(diǎn)

        在傳統(tǒng)的Web 應(yīng)用程序中,動(dòng)態(tài)獲取數(shù)據(jù)的樹狀菜單都是采用請求→刷新→顯示模式。即每當(dāng)用戶通過單擊父結(jié)點(diǎn)按鈕或鏈接向服務(wù)器發(fā)送一個(gè)請求時(shí),都由服務(wù)器接收請求處理,處理完畢后服務(wù)器將信息發(fā)送至瀏覽器端進(jìn)行顯示[3]。而在服務(wù)器處理的時(shí)間里,瀏覽器端處于Loading狀態(tài),顯示為空白和無響應(yīng)狀態(tài),用戶能做的事情只有等待。由于每次對菜單的操作瀏覽器端都要與服務(wù)器端進(jìn)行交互,導(dǎo)致了服務(wù)器端數(shù)據(jù)量的增大。不適合菜單數(shù)據(jù)量大的場合。

        使用Ajax技術(shù),可以將瀏覽器端和服務(wù)器端結(jié)合起來,當(dāng)客戶端提交請求后,并不將所有的數(shù)據(jù)取回,而是返回該菜單的頂級(jí)菜單。當(dāng)展開某一菜單時(shí)再發(fā)送請求,服務(wù)器端接收瀏覽器端的請求并處理完畢后,只返回該菜單下的子的菜單,再利用JavaScript將數(shù)據(jù)顯示到客戶端,所有數(shù)據(jù)獲取和處理工作都在后臺(tái)完成。

        基于Ajax技術(shù)的實(shí)現(xiàn),用戶既能夠在展開菜單時(shí)及時(shí)獲得最新的數(shù)據(jù),同時(shí)又避免服務(wù)器端頻繁處理數(shù)據(jù)而影響系統(tǒng)的性能[4]。圖1所示為基于Ajax技術(shù)實(shí)現(xiàn)樹狀菜單時(shí),瀏覽器與服務(wù)器相互通信的整個(gè)過程圖。

        圖1 基于Ajax的實(shí)現(xiàn)

        3 設(shè)計(jì)樹狀菜單的樹據(jù)結(jié)構(gòu)

        樹由多個(gè)結(jié)點(diǎn)組成,每個(gè)結(jié)點(diǎn)具有通用的性質(zhì),把通用的性質(zhì)抽象出來作為樹結(jié)點(diǎn)的接口類。以圖2為例,“機(jī)電工程學(xué)院”只是樹中的一個(gè)結(jié)點(diǎn),該結(jié)點(diǎn)其下有子結(jié)點(diǎn),且該結(jié)點(diǎn)能夠展開。一個(gè)結(jié)點(diǎn)主要有以下幾個(gè)屬性:名稱,用于顯示該結(jié)點(diǎn)的名稱;是否可以展開;該結(jié)點(diǎn)下所有的子結(jié)點(diǎn);以及該結(jié)點(diǎn)的唯一標(biāo)識(shí)。依據(jù)結(jié)點(diǎn)的屬性,可以設(shè)計(jì)出一個(gè)樹結(jié)點(diǎn)的接口類TreeviewElement如下:

        圖2 樹菜單實(shí)例圖

        4 樹狀菜單的實(shí)現(xiàn)

        4.1 瀏覽器端的設(shè)計(jì)

        類似Windows資源管理器的文件夾模式。對于每個(gè)節(jié)點(diǎn)的DHTML 代碼,需要包含節(jié)點(diǎn)的位置、前導(dǎo)圖片、樣式、針對該節(jié)點(diǎn)的其他操作等。同時(shí)為了節(jié)點(diǎn)顯示的連貫性,還需一些前導(dǎo)圖片。

        對于樹的非葉子節(jié)點(diǎn),圖片和節(jié)點(diǎn)信息等,采用一個(gè)DIV( division)容器包含。DIV容器是DHTML 的基礎(chǔ),使用它可以通過腳本程序?qū)ζ鋵傩赃M(jìn)行操作,如設(shè)置其style 樣式的display 屬性來控制子節(jié)點(diǎn)的展開和隱藏。節(jié)點(diǎn)的位置、前導(dǎo)圖片、樣式、針對該節(jié)點(diǎn)的其他的操作等都放入容器中,關(guān)鍵代碼如下:

        4.2 動(dòng)態(tài)加載技術(shù)的應(yīng)用

        如果一次性獲取完整的先序樹,構(gòu)造成xml提供給JavaScript解析,數(shù)據(jù)量越大,消耗的資源越多,客戶端響應(yīng)延遲時(shí)間就越長,因此對于大數(shù)據(jù)量的樹,采用動(dòng)態(tài)加載方式,即每次單擊“+”圖片時(shí),判斷是否已加載子節(jié)點(diǎn)數(shù)據(jù),如果未加載則通過Ajax的XMLHTTP組件XMLHTTPRequest對象異步發(fā)送請求獲取節(jié)點(diǎn)數(shù)據(jù)。相關(guān)JavaScript 代碼如下:

        5 結(jié)論

        本方案支持無刷新動(dòng)態(tài)維護(hù)樹的節(jié)點(diǎn)信息,支持拖放節(jié)點(diǎn)改變樹的節(jié)點(diǎn)結(jié)構(gòu)以及次序;同時(shí)采用數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)信息,保證了該方案有一定的通用性。

        [1] 劉懷亮.JavaScript程序設(shè)計(jì)[M].北京:冶金工業(yè)出版社,2006.

        [2] 王星,潘郁.基于Ajax技術(shù)的Web模型在網(wǎng)站開發(fā)中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2006,22(9-3),206-207:241.

        [3] 施偉偉.征服Ajax—WEB2.0快速入門與項(xiàng)目實(shí)踐[M].北京:人民郵電出版社,2006.

        [4] 王嘉.Ajax經(jīng)典案例開發(fā)大全[M].北京:清華大學(xué)出版社,2007:223.

        猜你喜歡
        樹狀服務(wù)器端數(shù)據(jù)量
        基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
        計(jì)算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
        高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
        寬帶信號(hào)采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計(jì)與研究
        電子制作(2019年13期)2020-01-14 03:15:18
        鋼結(jié)構(gòu)樹狀支撐柱施工設(shè)計(jì)
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        樹狀月季的嫁接技術(shù)及后期管理
        樹狀月季培育關(guān)鍵技術(shù)
        在Windows中安裝OpenVPN
        列表畫樹狀圖各有所長
        五月激情狠狠开心五月| 精品深夜av无码一区二区老年| 日韩a毛片免费观看| 仙女白丝jk小脚夹得我好爽| 色小姐在线视频中文字幕| 日本三级香港三级人妇99| 亚洲av之男人的天堂网站| 国产精品18久久久久久不卡中国 | 国产精品99久久久久久猫咪| 性夜影院爽黄a爽在线看香蕉| 在线视频一区二区亚洲| 中文字幕人妻日韩精品| 高h纯肉无码视频在线观看| 真人男女做爰无遮挡免费视频| 午夜av内射一区二区三区红桃视 | 无码熟妇人妻av在线影片| 日本高清色惰www在线视频| 亚洲精品不卡av在线免费| 国产国语亲子伦亲子| 美女大量吞精在线观看456| 中国产无码一区二区三区| 国产精品日韩av一区二区| 欧美人妻少妇精品久久黑人| 91视频88av| 一区二区免费中文字幕| 亚洲av免费手机在线观看| 品色永久免费| 亚洲精品AⅤ无码精品丝袜无码 | 国产香蕉视频在线播放| 亚洲18色成人网站www| 精品国产一区二区三区久久女人| 日本办公室三级在线观看| 正在播放老肥熟妇露脸| 欧洲色综合| 久久亚洲精精品中文字幕早川悠里 | 亚洲嫩模一区二区三区视频| 一区二区三区激情免费视频| 麻豆成人精品国产免费| 91成人午夜性a一级毛片| 日韩女优视频网站一区二区三区 | 男女啪动最猛动态图|