| 1 | 1/1 | 返回列表 |
| 查看: 591 | 回復(fù): 0 | |||
[交流]
多叉樹結(jié)合JavaScript樹形組件實(shí)現(xiàn)無限級樹形結(jié)構(gòu)
|
|
一、問題研究的背景和意義 在web應(yīng)用程序開發(fā)領(lǐng)域,基于ajax技術(shù)的樹形組件已經(jīng)被廣泛使用,它用來在html頁面上展現(xiàn)具有層次結(jié)構(gòu)的數(shù)據(jù)項(xiàng)。目前市場上常見的框架及組件庫中均包含自己的樹形組件,例如jquery、ext js等,還有一些獨(dú)立的樹形組件,例如dhtmlxtree等,這些樹形組件完美的解決了層次數(shù)據(jù)的展示問題。展示離不開數(shù)據(jù),樹形組件主要利用ajax技術(shù)從服務(wù)器端獲取數(shù)據(jù)源,數(shù)據(jù)源的格式主要包括json、xml等,而這些層次數(shù)據(jù)一般都存儲在數(shù)據(jù)庫中!盁o限級樹形結(jié)構(gòu)”,顧名思義,沒有級別的限制,它的數(shù)據(jù)通常來自數(shù)據(jù)庫中的無限級層次數(shù)據(jù),這種數(shù)據(jù)的存儲表通常包括id和parentid這兩個字段,以此來表示數(shù)據(jù)之間的層次關(guān)系。現(xiàn)在問題來了,既然樹形組件的數(shù)據(jù)源采用json或xml等格式的字符串來組織層次數(shù)據(jù),而層次數(shù)據(jù)又存儲在數(shù)據(jù)庫的表中,那么如何建立起樹形組件與層次數(shù)據(jù)之間的關(guān)系,換句話說,如何將數(shù)據(jù)庫中的層次數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的層次結(jié)構(gòu)的json或xml格式的字符串,返回給客戶端的樹形組件?這就是我們要解決的關(guān)鍵技術(shù)問題。本文將以目前市場上比較知名的ext js框架為例,講述實(shí)現(xiàn)無限級樹形結(jié)構(gòu)的方法,該方法同樣適用于其它類似的樹形組件。 ext js框架是富客戶端開發(fā)中出類拔萃的框架之一。在ext的ui組件中,樹形組件無疑是最為常用的組件之一,它用來實(shí)現(xiàn)樹形結(jié)構(gòu)的視圖。treenode用來實(shí)現(xiàn)靜態(tài)的樹形結(jié)構(gòu),asynctreenode用來實(shí)現(xiàn)動態(tài)的異步加載樹形結(jié)構(gòu),后者最為常用,它通過接收服務(wù)器端返回來的json格式的數(shù)據(jù),動態(tài)生成樹形結(jié)構(gòu)節(jié)點(diǎn)。動態(tài)生成樹有兩種思路:一種是一次性生成全部樹節(jié)點(diǎn),另一種是逐級加載樹節(jié)點(diǎn)(利用ajax,每次點(diǎn)擊節(jié)點(diǎn)時查詢下一級節(jié)點(diǎn))。對于大數(shù)據(jù)量的樹節(jié)點(diǎn)來說,逐級加載是比較合適的選擇,但是對于小數(shù)據(jù)量的樹節(jié)點(diǎn)來說,一次性生成全部節(jié)點(diǎn)應(yīng)該是最為合理的方案。在實(shí)際應(yīng)用開發(fā)中,一般不會遇到特別大數(shù)據(jù)量的場景,所以一次性生成全部樹節(jié)點(diǎn)是我們重點(diǎn)研究的技術(shù)點(diǎn),也就是本文要解決的關(guān)鍵技術(shù)問題。本文以基于ext js的應(yīng)用系統(tǒng)為例,講述如何將數(shù)據(jù)庫中的無限級層次數(shù)據(jù)一次性在界面中生成全部樹節(jié)點(diǎn)(例如在界面中以樹形方式一次性展示出銀行所有分支機(jī)構(gòu)的信息),同時對每一個層次的節(jié)點(diǎn)按照某一屬性和規(guī)則排序,展示出有序的樹形結(jié)構(gòu)。 解決一次性構(gòu)造無限級樹形結(jié)構(gòu)的問題,可以拓展出更多的應(yīng)用場景,例如樹形結(jié)構(gòu)表格treegrid,一次性生成樹形表格,對樹形表格進(jìn)行完整分頁,對表格列進(jìn)行全排序;或者可以利用本文的思路擴(kuò)展出其他的更復(fù)雜的應(yīng)用場景。 ------------------------------------------------------------------------------------------------- 全篇文章請從百度網(wǎng)盤中下載。 百度網(wǎng)盤下載鏈接:https://pan.baidu.com/s/13-1Ra-eonZtEmFGXn7KLLg?pwd=2022 提取碼:2022 ------------------------------------------------------------------------------------------------- |
| 1 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 復(fù)試調(diào)劑 +4 | 杰尼龜aaa 2026-03-03 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 環(huán)境調(diào)劑 +8 | chenhanheng 2026-03-02 | 8/400 |
|
|
[考研] 中國林科院林化所(南京)2026年招收化學(xué)/材料/環(huán)境工程等背景碩士研究生3名 +3 | realstar2006 2026-02-27 | 3/150 |
|
|
[考研] 306求調(diào)劑 +7 | 張張張張oo 2026-03-03 | 7/350 |
|
|
[考研] 環(huán)境調(diào)劑 +5 | 柒槿levana 2026-03-01 | 5/250 |
|
|
[考研]
材料270求調(diào)劑
6+6
|
Eiiiio 2026-03-01 | 11/550 |
|
|
[考研] 求調(diào)劑 +4 | Guo_yuxuan 2026-03-02 | 5/250 |
|
|
[考研]
材料工程專碩283求調(diào)劑
5+8
|
,!? 2026-03-02 | 10/500 |
|
|
[考研] 324求調(diào)劑 +4 | wxz2 2026-03-03 | 5/250 |
|
|
[考研] 化工京區(qū)271求調(diào)劑 +7 | 11ing 2026-03-02 | 7/350 |
|
|
[考研] 288求調(diào)劑 +3 | 少71.8 2026-03-02 | 5/250 |
|
|
[考研] 085600求調(diào)劑 +4 | LRZZZZZZ 2026-03-02 | 5/250 |
|
|
[考研] 0856材料調(diào)劑 +5 | 沿岸有貝殼OUC 2026-03-02 | 5/250 |
|
|
[考研] 0856材料求調(diào)劑 +12 | hyf hyf hyf 2026-02-28 | 13/650 |
|
|
[考研] 材料284求調(diào)劑,一志愿鄭州大學(xué)英一數(shù)二專碩 +15 | 想上岸的土撥鼠 2026-02-28 | 15/750 |
|
|
[考研] 275求調(diào)劑 +7 | 明遠(yuǎn)求學(xué) 2026-03-01 | 7/350 |
|
|
[考研] 一志愿中石油(華東)本科齊魯工業(yè)大學(xué) +3 | 石能偉 2026-03-02 | 3/150 |
|
|
[考研] 0856化工專碩求調(diào)劑 +15 | 董boxing 2026-03-01 | 15/750 |
|
|
[考研] 哈工大計(jì)算機(jī)劉劼團(tuán)隊(duì)招生 +4 | hit_aiot 2026-03-01 | 6/300 |
|
|
[基金申請]
剛錄用,沒有期刊號,但是在線可看的論文可以放為代表作嗎
10+3
|
arang1 2026-03-01 | 3/150 |
|