999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Ajax的動態Web樹狀菜單的設計與實現

2010-08-24 01:46:58郜亞麗
制造業自動化 2010年15期

郜亞麗

GAO Ya-li

(濟源職業技術學院,濟源 454650)

0 引言

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

1 Ajax概述

1.1 Ajax的定義

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

1.2 Ajax的特點

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

2 使用Ajax技術實現樹狀菜單的優點

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

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

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

圖1 基于Ajax的實現

3 設計樹狀菜單的樹據結構

樹由多個結點組成,每個結點具有通用的性質,把通用的性質抽象出來作為樹結點的接口類。以圖2為例,“機電工程學院”只是樹中的一個結點,該結點其下有子結點,且該結點能夠展開。一個結點主要有以下幾個屬性:名稱,用于顯示該結點的名稱;是否可以展開;該結點下所有的子結點;以及該結點的唯一標識。依據結點的屬性,可以設計出一個樹結點的接口類TreeviewElement如下:

圖2 樹菜單實例圖

4 樹狀菜單的實現

4.1 瀏覽器端的設計

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

對于樹的非葉子節點,圖片和節點信息等,采用一個DIV( division)容器包含。DIV容器是DHTML 的基礎,使用它可以通過腳本程序對其屬性進行操作,如設置其style 樣式的display 屬性來控制子節點的展開和隱藏。節點的位置、前導圖片、樣式、針對該節點的其他的操作等都放入容器中,關鍵代碼如下:

4.2 動態加載技術的應用

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

5 結論

本方案支持無刷新動態維護樹的節點信息,支持拖放節點改變樹的節點結構以及次序;同時采用數據庫存儲節點信息,保證了該方案有一定的通用性。

[1] 劉懷亮.JavaScript程序設計[M].北京:冶金工業出版社,2006.

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

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

[4] 王嘉.Ajax經典案例開發大全[M].北京:清華大學出版社,2007:223.

主站蜘蛛池模板: 亚洲欧美极品| 国产亚洲欧美在线中文bt天堂| 日韩大乳视频中文字幕| 久久国产亚洲偷自| 日本不卡在线视频| 日本人妻一区二区三区不卡影院| 高清无码不卡视频| 国产乱子伦视频三区| 911亚洲精品| 欧美性久久久久| 亚洲天堂精品视频| 国产精品99久久久久久董美香| 亚洲成人www| 久久www视频| a毛片在线免费观看| 99热6这里只有精品| 99er精品视频| 欧美啪啪精品| 精品国产一区二区三区在线观看| 欧美人与牲动交a欧美精品| 91精品免费久久久| 中文字幕在线永久在线视频2020| 风韵丰满熟妇啪啪区老熟熟女| 99免费在线观看视频| 色综合久久综合网| 人妻免费无码不卡视频| 国产精品久久久免费视频| 一本综合久久| a级毛片免费看| 91蜜芽尤物福利在线观看| 一级成人a毛片免费播放| 国产精品熟女亚洲AV麻豆| 成人亚洲国产| 欧美成人午夜影院| 亚洲成aⅴ人在线观看| 国产性生交xxxxx免费| 丰满人妻久久中文字幕| 国产高潮视频在线观看| 丁香五月婷婷激情基地| 免费在线视频a| 自拍偷拍一区| 亚洲国产天堂久久九九九| AV无码一区二区三区四区| 2021国产精品自拍| 国产成人精品免费av| 久久久久久高潮白浆| 亚洲精品麻豆| 久久性妇女精品免费| 午夜国产不卡在线观看视频| 欧美成人午夜视频免看| 色AV色 综合网站| 欧美激情第一欧美在线| 国产精品尤物在线| 国产欧美日韩18| 日韩欧美中文在线| 国产高清色视频免费看的网址| 一区二区日韩国产精久久| 2022国产91精品久久久久久| 国产精品视频3p| 国产女人爽到高潮的免费视频| 国产精品成人免费综合| 欧美无专区| 亚洲国产第一区二区香蕉| 青青国产在线| 在线免费a视频| 女同久久精品国产99国| 无码日韩视频| 亚洲Av激情网五月天| 国产亚洲精品97在线观看| 在线高清亚洲精品二区| 亚洲视频四区| 97国内精品久久久久不卡| 91视频99| 91免费观看视频| 无码国内精品人妻少妇蜜桃视频| 国产亚洲美日韩AV中文字幕无码成人| 五月婷婷综合色| 免费一级无码在线网站| 免费不卡在线观看av| 97se亚洲综合| 欧美特黄一级大黄录像| 国产人成网线在线播放va|