- 浏览: 563029 次
- 性别:
- 来自: 武汉
-
文章分类
- 全部博客 (533)
- spring (8)
- struts (21)
- hibernate (17)
- java其他 (73)
- 设计模式 (2)
- 开发软件/插件 (26)
- android (8)
- extjs4 (1)
- 网络编程 (4)
- 生活杂记 (3)
- ibatis (5)
- 应用服务器 (4)
- js (26)
- html/css (16)
- linux (0)
- db (32)
- jsp/servlet (13)
- xml (9)
- webservice (10)
- 错误/异常处理 (23)
- 线程 (10)
- maven (7)
- lucene (2)
- python (0)
- 报表 (1)
- mongodb (6)
- restful (6)
- ssl (1)
最新评论
-
zmwxiaoming:
...
struts2拦截器验证登陆状态 -
u012413283:
感谢楼主,同样的问题解决了
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案) -
javalucky:
你妹,想不吐槽都不行啊,eclipse 那来的maven4My ...
clipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin: -
zhaoyh82:
感谢楼主
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案) -
hua2011:
按照楼主说的,还是没有出现pom editor编辑器,麻烦楼主 ...
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案)
java中有些东西是时常会用到但是要是从头开始原生的写的话,就会花掉很多时间,就比如这里的树。在开发中,树控件很常用也很容易发生一些错误。我们假使使用js的树的话,除了关注里面的构成细节之外,还得考虑到它本身的性能如何,是否能满足你的开发需求,最大能渲染渲染出多少的子节点,耗时如何,占用的资源是否合理,能否方便使用ajax等等,都是我们选择树控件时,需要注意的问题,所以这里我列举出我们比较常用的,且性能较为不错的几棵树,供大家不同的需求和选择。
这里我列出自己使用过的3棵树,分别是rtree,梅花雪树1.0和dtree。下面就对他们进行一一介绍。老习惯,先上效果图:
rtree图一
rtree图二
梅花雪树图一
梅花雪树图二
dtree图一
dtree图二
看到上面的效果图,大家都发现了共同点了,三棵树分别都展示了全部收起和全部展开的这一功能点。我希望大家不要因为看到这几张图片就贸然做出了选择,缘故有两点,第一我们是开发人员该看的是代码和性能而不是效果图,第二我的css太菜,实在弄不好,让三个树风格样式统一,假使公司美工在的话,定然是更加好看的.....
下面我们逐一介绍,首先是这个rtree,估计经常上论坛的人见过,是曾经的一个精华帖,作者是在dtree的基础上进行的改造,以符合自己的开发需求,号称最大渲染量可以达到25万个节点,我最初也是被这个标题给吸引的,25万呐,结果使用一看,果不其然,25万如我想的一样,跑不起来的.....大概跑到几万就不行了,后来想想,自己还真无聊,实际开发的话,哪里会有这么大的树呀,真是使劲使到刀刃上了.....我们撇开性能不说,看看它是如何做成一棵树的,以此判断它的易用性,毕竟只有好用,方便,才会吸引更多人去使用。下面是它做成一棵树所使用的代码量:
<script> var r=new rTree("r"); r.setNodedbc(true); r.setNodehref(false); r.setLazy(false); r.canAlterbg(true); r.add(1,0,"a哈罗",'images/folderclose.gif','images/imgfolder.gif','javascript:alert("我们都是哈罗!!!")'); r.add(2,1,"男哈罗","images/folderclose.gif","images/folderopen.gif","",""); r.add(3,1,"b哈罗","images/folderclose.gif","images/folderopen.gif","",""); r.add(4,1,"c哈罗","images/folderclose.gif","images/folderopen.gif","",""); r.add(5,1,"d哈罗","images/folderclose.gif","images/folderopen.gif","",""); r.add(6,2,"e女哈罗",'','',"images/hello1.jpg","show"); r.add(7,2,"f哈罗","images/folderclose.gif","images/folderopen.gif","",""); r.add(8,3,"g哈罗","images/folderclose.gif","images/folderopen.gif","",""); r.add(9,3,"h哈罗","","","","",true); r.add(10,3,"i哈罗","images/folderclose.gif","images/folderopen.gif","",""); //循环添加,以测试最大渲染量 for(var i=11;i<11;i++){ r.add(i,parseInt(Math.random()*i),"测试"+i); } //r.useBgImg("images/green.jpg"); r.startTree(); </script>
然后我们看一下梅花雪树的代码:
<SCRIPT LANGUAGE="JavaScript"> <!-- var tree = new MzTreeView("tree"); tree.setIconPath("./"); tree.nodes['-1_1'] = 'text:节点 1'; tree.nodes['1_2'] = 'text:节点 2'; tree.nodes['1_3'] = 'text:节点 3'; tree.nodes['1_4'] = 'text:节点 4'; tree.nodes['1_5'] = 'text:节点 5'; tree.nodes['1_6'] = 'text:节点 6'; tree.nodes['1_7'] = 'text:节点 7'; tree.nodes['1_8'] = 'text:节点 8'; tree.nodes['1_9'] = 'text:节点 9'; tree.nodes['1_10'] = 'text:节点 10'; document.getElementById('treeviewarea').innerHTML = tree.toString(); //下面这句代码就是一展开即聚焦到某一节点上的示例 setTimeout("tree.focus('1', true); tree.expand(tree.currentNode.id, true);",10); </SCRIPT>
最后我们看看dtree的实现代码:
<script type="text/javascript"> var d = new dTree('d'); d.add(0,-1,'My example tree'); d.add(1,0,'Node 1','example01.html'); d.add(2,0,'Node 2','example01.html'); d.add(3,1,'Node 1.1','example01.html'); d.add(4,0,'Node 3','example01.html'); d.add(5,3,'Node 1.1.1','example01.html'); d.add(6,5,'Node 1.1.1.1','example01.html'); d.add(7,0,'Node 4','example01.html'); d.add(8,1,'Node 1.2','example01.html'); d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif'); d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir'); d.add(11,9,'Mom\'s birthday','example01.html'); d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif'); //点击节点时,发送一个请求,web中则可以响应一个事件 d.add(13,0,'MyNode','http://www.baidu.com','send a request to Baidu!!!','','img/question.gif','cd.gif','') document.write(d); </script>
通过上面的易用性对比,我们发现3棵树渲染的主要代码其实大同小异,行数上也差不了多少。那接下来,我们就得去比较它们生成同一棵树,即十个父节点,各自需要的时间。方法则是类似梅花雪树中的计算页面加载耗时的方法,发觉三棵树在加载10000个节点的时候,基本看不出性能上的差别,几次刷新重新渲染情况下,数据如下:
rtree约为:365-549毫秒[全部收起状态] 1422-3972毫秒[全部展开状态]
梅花雪树约为:189-342毫秒[全部收起状态] 3243-5956毫秒[全部展开状态]
dtree约为:189-376毫秒[全部收起状态] 2342-3876毫秒[全部展开状态]
上面测试时,全部在火狐下,而且刷新的之后,有缓存的缘故,时间的间隔可能有些大,到后面几万的时候,三棵树分别在全部展开时,都有卡死的现象,后来就没测试了,这个跟机器性能关系也有很大的关系,所以总体上看,三个性能上也都差不多。
这个时候该如何选择呢,我想这个还得大家自己去看源码,去在本机上试试才行。下面我就贴上效果图上的,三棵树的源码,希望能帮助大家做出选择。
评论
当时是因为正好有人发了个很挫的树控件,还自吹为很强大,我才放自己做的树控件到javaeye上的。25万的确是标题党了。。当时测下来发现造成速度慢的最大原因是加标签节点到document上,所以加了lazy的属性,当lazy设为true时,的确是可以加载25万的。
主要还是懒,别人的控件一般都功能很强大,当不符合自己需求时,自己去改太累。。自己写的改起来简单。而且大多数时候,自己要的只是几个最简单的功能而已。

发表评论
-
用 ajaxFileUpload 出现的问题:has no method 'handleError'、返回json数据提示下载 、一直返回error
2014-07-09 10:04 11591. 提示错误:Uncaught TypeError: Ob ... -
js防止表单重复提交
2013-10-30 11:01 585<script language="javas ... -
js控制文本框自动适应文本长度
2013-10-15 10:03 1053<!Doctype HTML PUBLIC " ... -
high一下源码(仅适用chrome)
2013-10-15 10:00 568<!DOCTYPE HTML PUBLIC " ... -
js弹出层
2013-10-15 09:50 772<!DOCTYPE html> <htm ... -
jQuery选择器总结
2013-09-16 13:23 515jQuery 的选择器可谓之 ... -
Java购物车实现
2013-09-13 16:42 1169查询的资料,找到三种 ... -
jquery 追加tr和删除tr
2013-09-11 17:28 1064<script type="text/jav ... -
jquery的each()详细介绍
2013-07-29 14:12 793each()方法能使DOM循环结构简洁,不容易出错。e ... -
7kb的javascript日期操作类库(XDate)
2013-07-22 14:33 1053A Modern JavaScript Date Libra ... -
js遍历对象的属性并且动态添加属性
2013-07-22 13:27 2308Java代码 var ... -
jQuery插件FullCalendar日程表实现可扩展Google日历功能
2013-07-01 11:56 3502[javascript] view plainc ... -
js搜索关键词高亮
2013-06-20 18:23 1268<!DOCTYPE HTML PUBLIC " ... -
CKEditor+CKFinder+jsp的整理
2013-05-24 10:53 1611CKEditor是新一代的FCKeditor,是一个重新开发 ... -
jsoup解析html/根据关键词拿到论坛帖子信息
2013-04-19 17:02 1627以论坛《宽带山》为例,需要根据给定的 ... -
JS限制Textarea文本域字符个数
2013-03-14 16:44 1325<html> <head> ... -
ajax的xmlHttpRequest对象
2013-03-12 14:56 1178XMLHttpReque ... -
jquery选择器操作控制select
2013-03-08 10:27 942jQuery获取Select选择的Text和Value: ... -
4行CSS实现表格内容超过一行的部分,用省略号代替
2013-02-25 14:00 1955table{ table-layout: ... -
js获取当前系统时间 .
2013-02-20 13:31 6446var date=new Date(); var ...
相关推荐
TinyYolo2实时视频流物体检测ONNX模型 运行 ONNX 模型,并结合 OpenCV 进行图像处理。具体流程包括: 1. 加载并初始化 ONNX 模型。 2. 从摄像头捕获实时视频流。 3. 对每一帧图像进行模型推理,生成物体检测结果。 4. 在界面上绘制检测结果的边界框和标签。
chromedriver-linux64-134.0.6998.23(Beta).zip
Web开发:ABP框架4-DDD四层架构的详解
chromedriver-linux64-135.0.7029.0(Canary).zip
实现人脸识别的考勤门禁系统可以分为以下步骤: 1. 采集人脸图像数据集:首先需要采集员工的人脸图像数据集,包括正面、侧面等多个角度的图像。可以使用MATLAB中的图像采集工具或者第三方库进行采集。 2. 预处理人脸图像数据:对采集到的人脸图像数据进行预处理,包括人脸检测、人脸对齐、人脸裁剪等操作。MATLAB提供了相关的图像处理工具箱,可以用于实现这些处理步骤。 3. 特征提取与特征匹配:使用人脸识别算法提取人脸图像的特征,比如使用人脸识别中常用的特征提取算法如Eigenfaces、Fisherfaces或者基于深度学习的算法。然后将员工的人脸数据与数据库中的人脸数据进行匹配,判断是否为注册员工。 4. 考勤记录与门禁控制:如果人脸匹配成功,系统可以记录员工的考勤时间,并且控制门禁系统进行开启。MATLAB可以与外部设备进行通信,实现门禁控制以及考勤记录功能。
yugy
企业IT治理体系规划.pptx
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
基于多目标粒子群算法的冷热电联供综合能源系统优化调度与运行策略分析,基于多目标粒子群算法的冷热电联供综合能源系统优化调度与运行策略分析,MATLAB代码:基于多目标粒子群算法冷热电联供综合能源系统运行优化 关键词:综合能源 冷热电三联供 粒子群算法 多目标优化 参考文档:《基于多目标算法的冷热电联供型综合能源系统运行优化》 仿真平台:MATLAB 平台采用粒子群实现求解 优势:代码注释详实,适合参考学习,非目前烂大街的版本,程序非常精品,请仔细辨识 主要内容:代码构建了含冷、热、电负荷的冷热电联供型综合能源系统优化调度模型,考虑了燃气轮机、电制冷机、锅炉以及风光机组等资源,并且考虑与上级电网的购电交易,综合考虑了用户购电购热冷量的成本、CCHP收益以及成本等各种因素,从而实现CCHP系统的经济运行,求解采用的是MOPSO算法(多目标粒子群算法),求解效果极佳,具体可以看图 ,核心关键词: 综合能源系统; 冷热电三联供; 粒子群算法; 多目标优化; MOPSO算法; 优化调度模型; 燃气轮机; 电制冷机; 锅炉; 风光机组; 上级电网购售电交易。,基于多目标粒子群算法的CCHP综合
DSP28379D串口升级方案:单核双核升级与Boot优化,C#上位机开发串口通信方案,DSP28379D串口升级方案:单核双核升级与Boot优化,C#上位机开发实现串口通信,DSP28379D串口升级方案 单核双核升级,boot升级,串口方案。 上位机用c#开发。 ,DSP28379D; 串口升级方案; 单核双核升级; boot升级; 上位机C#开发,DSP28379D串口双核升级方案:Boot串口升级技术使用C#上位机开发
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
基于PLC的双层自动门控制:光电传感触发,有序开关与延时功能实现,附程序、画面及参考文档。,基于PLC的双层自动门控制系统:精准控制,保障无尘环境;门间联动,智能安防新体验。,基于plc的双层自动门控制系统,全部采用博途仿真完成,提供程序,画面,参考文档,详情见图。 实现功能(详见上方演示视频): ① 某房间要求尽可能地保持无尘,在通道上设置了两道电动门,门1和门2,可通过光电传感器自动完成门的打开和关闭。 门1和门2 不能同时打开。 ② 第 1 道门(根据出入方向不同,可能是门 1 或门 2),是由在通道外的开门者通过按开门按钮打开的,而第 2 道门(根据出入方向不同,可能是门 1 或门 2 )则是在打开的第 1 道门关闭后自动地打开的(也可以由通道内的人按开门按钮来打开第2 道门)。 这两道门都是在门开后,经过 3s 的延时而自动关闭的。 ③ 在门关闭期间,如果对应的光电传感器的信号被遮断,则门立即自动打开。 如果在门外或者在门内的开门者按对应的开门按钮时,立即打开。 ④ 出于安全方面的考虑,如果在通道内的某个人经过光电传感器时,对应的门已经打开,则通道外的开门者可以不按开门按钮。
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
DeepSeek+DeepResearch——让科研像聊天一样简单 (1)DeepSeek如何做数据分析? (2)DeepSeek如何分析文件内容? (3)DeepSeek如何进行数据挖掘? (4)DeepSeek如何进行科学研究? (5)DeepSeek如何写综述? (6)DeepSeek如何进行数据可视化? (7)DeepSeek如何写作润色? (8)DeepSeek如何中英文互译? (9)DeepSeek如何做降重? (10)DeepSeek论文参考文献指令 (11)DeepSeek基础知识。
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
1、文件内容:jdepend-demo-2.9.1-10.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/jdepend-demo-2.9.1-10.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
内容概要:本文档详细介绍了如何利用 MATLAB 实现鲸鱼优化算法 (WOA) 和长短期记忆网络 (LSTM) 相结合的技术——WOA-LSTM,在数据分类和预测领域的应用。文章首先概述了LSTM在网络训练中超参数依赖的问题以及WOA作为一种新颖的全局优化算法的优势。接着阐述了该项目的研究背景、目的及其重要意义,并深入讨论了项目面临的六大主要挑战,从模型优化到超参数空间管理。文档特别强调WOA-LSTM融合所带来的性能提升、降低计算复杂度的能力及其实现自动化的超参数优化流程。除此之外,文中展示了模型的应用广泛性,覆盖了从金融市场的股票预测到智能制造业的各种实际场景,并提供了具体的模型架构细节和代码实例,以帮助理解模型的工作原理和技术要点。 适合人群:具有一定编程技能的研究人员、工程师和科学家们,尤其是对深度学习技术和机器学习感兴趣的专业人士。 使用场景及目标:该文档的目标是向用户传授使用MATLAB实现WOA-LSTM进行复杂数据分类和预测的方法论,旨在指导读者理解和掌握如何利用WOA进行超参数寻优,从而改善LSTM网络性能。 其他说明:通过阅读这份文档,使用者不仅能够获得有关WOA-LSTM技术的具体实现方式的知识,而且还可以获取关于项目规划和实际部署过程中的宝贵经验。
tomcat安装及配置教程.md