博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AMD and CMD are dead之KMD.js依赖可视化工具发布
阅读量:6583 次
发布时间:2019-06-24

本文共 1169 字,大约阅读时间需要 3 分钟。

使用

require("MyAapp.DepTree", function (DepTree) {    DepTree(({        renderTo: "holder",        width: "820",        height: "580",        data: [            { "name": "System" },            { "name": "Util" },            { "name": "System.Model", "deps": ["System", "Util"] },            { "name": "System.Model.Animate", "deps": ["System.Model"] },            { "name": "System.Model.User", "deps": ["System.Model.Animate", "Util"] },            { "name": "OurApp", "deps": ["System.Model.User", "Util"] }        ]    }))});

其中:

renderTo是容器

width和height是容器的宽高

data是模块和依赖关系

使用时候请自行引用

预览

其中,引用关系自下而上,上面的模块引用下面的模块,粗的线条代表相邻level之间有引用关系,细线代表跨级(level)间的引用关系。

技术细节

此工具完全基于开发,所以兼容性良好,raphaeljs支持IE6+,但是由于ie678不支持svg元素的getBBox来获取text的宽高,所以在老版本ie下几乎不能直视,所以建议使用现代浏览器。

树状程序设计:

要生成树状依赖关系图,要经过下面程序步骤:

1.找到最底层的模块,也就是level为0,他们不依赖于任何模块

2.从最底层开始,递归找引用上层的模块,依次向上,目的就是计算每一模块的level,是该层必须满足

      a.必须依赖上一层   

      b.不依赖同层或者其他层的

      c.level++

依赖线条的绘制:

经过上面的管线,每个模块的level遍历出来,当绘制依赖于线条的时候,根据level之差决定绘制粗线还是细线,也决定了线条的颜色。

布局自动适应:

其中,布局自动使用依赖于getBBox获取svg文本元素的高度和宽度,计算各种宽度与间距,ie678不支持,便只好放弃ie678。

文本的圆角背景的宽高由文本的宽高决定

文字与圆角背景的容器之间的左右间距由每一层(level)的模块的个数决定

文字与圆角背景的容器之间的上下间距由max level的数值决定

在线演示

传送门:

DepTree.js下载:

转载地址:http://nyxno.baihongyu.com/

你可能感兴趣的文章
React Native 0.20官方入门教程
查看>>
最优化问题中黄金分割法的代码
查看>>
Jquery获取iframe中的元素
查看>>
Laravel 学习笔记5.3之 Query Builder 源码解析(下)
查看>>
Struts2简单入门实例
查看>>
2012CSDN年度博客之星评选http://vote.blog.csdn.net/item/blogstar/xyz_lmn
查看>>
SpringBoot实战总汇--详解
查看>>
尝试使用iReport4.7(基于Ubuntu Desktop 12.04 LTS)
查看>>
子元素应该margin-top为何会影响父元素【转】
查看>>
AJAX 状态值(readyState)与状态码(status)详解
查看>>
BZOJ3668:[NOI2014]起床困难综合症(贪心)
查看>>
LightOJ 1245(Harmonic Number (II))
查看>>
小知识记录
查看>>
图片转流
查看>>
HTML 标签说明
查看>>
java笔记八:IO流之字符流与字符缓冲流
查看>>
Docker 命令收集
查看>>
myeclipse注册码生成器
查看>>
iOS App间相互跳转漫谈 part2
查看>>
ISCC2014 writeup
查看>>