1. 程式人生 > >jquery zTree 同步非同步樹結合應用 sping mvc

jquery zTree 同步非同步樹結合應用 sping mvc

jquery zTree 樹應用場景非常廣,寫這個外掛的大神真是太牛逼了。。。。。
樹節點比較少 就採用同步載入策略 簡單粗暴(一次性載入)
樹的節點多 就採用非同步載入載入策略 優秀的一筆,既能滿足需求,有能解決載入慢的問題。
遇到要在頁面上載入760000個節點的問題 (大不大? 嗯? 就問你大不大。沒看錯你沒有花眼 ,數一數那是幾個0)。
這裡寫圖片描述

var setting1 = {
            view : {
                dblClickExpand : false,
                showLine : true,
                fontCss : {
                    'color'
: 'black' }, selectedMulti : true }, check : { chkStyle : "checkbox", enable : true, chkboxType : { "Y" : "", "N" : "" } }, //非同步這樣寫。。。。拿走不謝
async : { type : "post", enable : true, autoParam :["id" ,"name","level","value"], //id為樹節點的id //name為樹節點的名字 //level樹的層級 //value (我自己給樹新增的額外隱藏資訊,後臺業 務要用到) otherParam:{}, //後臺的路徑
url : ctx + "/dtfb/query/asyncTreeNode" }, data : { simpleData : { enable : true, idKey : "id", pIdKey : "pId", rootPId : '0' } }, callback : { onCheck : getChangedAddressNode } }

非同步載入的時候還有這個提示圖片
這裡寫圖片描述

java 程式碼

   for(int i=0;i<areas.size();i++){
               StaticArea tmp=areas.get(i);
               if(tmp.getAreaId().toString().equals(id)){
                   continue;
               }
                maps = new HashMap<>();
                maps.put("id",tmp.getAreaId());
                maps.put("pId",id);
                maps.put("name", tmp.getAreaName());
                maps.put("isParent", true);
                maps.put("value", tmp.getAreaNo());
                mapList.add(maps); 
           }

isParent 非常的重要 直接決定了 節點前面有沒有那個“加號”

小弟不才 文章寫的不夠好 希望能追上大牛的腳步。