摘要:最近在優(yōu)化一段代碼,前端使用的是,頁面中有一個(gè)樹形菜單。我想的方法比較直接,一次性查出所有數(shù)據(jù),減少查庫的頻率,畢竟數(shù)據(jù)量也就那么多條。
最近在優(yōu)化一段代碼,前端使用的是Ext3,頁面中有一個(gè)樹形菜單。把項(xiàng)目放在本地跑,加載這個(gè)樹形菜單的速度似乎還湊合,但是在正式環(huán)境中點(diǎn)開這個(gè)頁面,這個(gè)樹形菜單加載的就很慢了,很明顯的感覺到卡殼了一下,于是去查看項(xiàng)目代碼,大致思路是這樣的,如下:
通過遞歸的方式不斷去執(zhí)行一個(gè)SQL,這個(gè)SQL是select ... from tb_tree tt where tt.parent_id = ? 這樣的結(jié)構(gòu),將查出的數(shù)據(jù)拼成json串放前端Ext展示,表象看起來好像還行,思路相對還是比較清晰的。
但是,服務(wù)器放在了合肥,我在北京,每次這么遞歸查詢都相當(dāng)于從北京向合肥發(fā)請求,這么一來肯定是要消耗時(shí)間的,好在表數(shù)據(jù)不算多,整體存放在表中的樹結(jié)構(gòu)不算復(fù)雜,否則,難以想象。故優(yōu)化勢在必行。
我想的方法比較直接,一次性查出所有數(shù)據(jù),減少查庫的頻率,畢竟數(shù)據(jù)量也就那么200多條。表結(jié)構(gòu)就是常規(guī)的id、text、parent_id這樣的,那我就想干脆通過Java構(gòu)造一顆樹,就是將SQL的這棵樹轉(zhuǎn)成Java的樹,轉(zhuǎn)好之后拼個(gè)json串豈不是so easy
寫個(gè)樹的實(shí)體類,我就用了這么幾個(gè)屬性
//getter、setter方法
還有一個(gè)生成樹結(jié)構(gòu)的工具類,里面有一個(gè)構(gòu)造樹的函數(shù)
通過構(gòu)造樹的方法將數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)變?yōu)镴ava樹,再變成json格式交給Ext來處理就大功告成啦
經(jīng)測試,代碼優(yōu)化前生成的json串耗時(shí)332毫秒,優(yōu)化后只有27毫秒
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68381.html
摘要:組織樹報(bào)表中由與父來實(shí)現(xiàn)組織樹報(bào)表,若層級數(shù)較多時(shí),對每個(gè)單元格設(shè)置過濾條件和形態(tài)會(huì)比較繁瑣,因此提供了一種特殊的數(shù)據(jù)集樹數(shù)據(jù)集,只需要簡單的設(shè)置就能自動(dòng)遞歸出層級,方便的實(shí)現(xiàn)如下圖組織樹報(bào)表圖一圖二構(gòu)建樹新建報(bào)表,添加數(shù)據(jù)集新建工作薄,添 組織樹報(bào)表中由id與父id來實(shí)現(xiàn)組織樹報(bào)表,若層級數(shù)較多時(shí),對每個(gè)單元格設(shè)置過濾條件和形態(tài)會(huì)比較繁瑣,因此FineReport提供了一種特殊的數(shù)據(jù)...
摘要:組織樹報(bào)表中由與父來實(shí)現(xiàn)組織樹報(bào)表,若層級數(shù)較多時(shí),對每個(gè)單元格設(shè)置過濾條件和形態(tài)會(huì)比較繁瑣,因此提供了一種特殊的數(shù)據(jù)集樹數(shù)據(jù)集,只需要簡單的設(shè)置就能自動(dòng)遞歸出層級,方便的實(shí)現(xiàn)如下圖組織樹報(bào)表圖一圖二構(gòu)建樹新建報(bào)表,添加數(shù)據(jù)集新建工作薄,添 組織樹報(bào)表中由id與父id來實(shí)現(xiàn)組織樹報(bào)表,若層級數(shù)較多時(shí),對每個(gè)單元格設(shè)置過濾條件和形態(tài)會(huì)比較繁瑣,因此FineReport提供了一種特殊的數(shù)據(jù)...
摘要:普通甘特圖帶里程碑的甘特圖帶關(guān)聯(lián)線的甘特圖狀態(tài)甘特圖多項(xiàng)目軸甘特圖二框架圖框架圖常用來表示組織層級關(guān)系,因此又可稱之為層級關(guān)系圖。 帆軟圖表(新特性)最新版本的圖表插件新增了甘特圖與框架圖兩種圖表類型,大大方便了生產(chǎn)管理所需,同時(shí)支持流向地圖的大數(shù)據(jù)模式。一.甘特圖甘特圖又稱任務(wù)計(jì)劃進(jìn)度圖,其通常用來表示項(xiàng)目進(jìn)展隨著時(shí)間進(jìn)度的變化。甘特圖被廣泛的應(yīng)用在各行業(yè)的項(xiàng)目管理中,因此帆軟在最新...
摘要:普通甘特圖帶里程碑的甘特圖帶關(guān)聯(lián)線的甘特圖狀態(tài)甘特圖多項(xiàng)目軸甘特圖二框架圖框架圖常用來表示組織層級關(guān)系,因此又可稱之為層級關(guān)系圖。 帆軟圖表(新特性)最新版本的圖表插件新增了甘特圖與框架圖兩種圖表類型,大大方便了生產(chǎn)管理所需,同時(shí)支持流向地圖的大數(shù)據(jù)模式。一.甘特圖甘特圖又稱任務(wù)計(jì)劃進(jìn)度圖,其通常用來表示項(xiàng)目進(jìn)展隨著時(shí)間進(jìn)度的變化。甘特圖被廣泛的應(yīng)用在各行業(yè)的項(xiàng)目管理中,因此帆軟在最新...
閱讀 1837·2021-11-18 13:20
閱讀 1203·2021-10-11 10:59
閱讀 3041·2021-08-24 10:01
閱讀 3565·2019-08-29 14:21
閱讀 3438·2019-08-29 14:15
閱讀 3580·2019-08-26 12:23
閱讀 3399·2019-08-26 11:46
閱讀 3415·2019-08-26 11:35