优化项目中树结构数据的操做

最近在优化一段代码,前端使用的是Ext3,页面中有一个树形菜单。把项目放在本地跑,加载这个树形菜单的速度彷佛还凑合,可是在正式环境中点开这个页面,这个树形菜单加载的就很慢了,很明显的感受到卡壳了一下,因而去查看项目代码,大体思路是这样的,以下:前端

经过递归的方式不断去执行一个SQL,这个SQL是select ... from tb_tree tt where tt.parent_id = ? 这样的结构,将查出的数据拼成json串放前端Ext展现,表象看起来好像还行,思路相对仍是比较清晰的。数据库

可是,服务器放在了合肥,我在北京,每次这么递归查询都至关于从北京向合肥发请求,这么一来确定是要消耗时间的,好在表数据不算多,总体存放在表中的树结构不算复杂,不然,不可思议。故优化势在必行。json

我想的方法比较直接,一次性查出全部数据,减小查库的频率,毕竟数据量也就那么200多条。表结构就是常规的id、text、parent_id这样的,那我就想干脆经过Java构造一颗树,就是将SQL的这棵树转成Java的树,转好以后拼个json串岂不是so easy服务器

写个树的实体类,我就用了这么几个属性函数

clipboard.png
//getter、setter方法工具

还有一个生成树结构的工具类,里面有一个构造树的函数测试

clipboard.png

经过构造树的方法将数据库中的数据转变为Java树,再变成json格式交给Ext来处理就大功告成啦优化

经测试,代码优化前生成的json串耗时332毫秒,优化后只有27毫秒spa

相关文章
相关标签/搜索