-
Ztree异步加载:无法正常显示数据15
ztree异步加载时无法正常显示数据
1.环境配置
MySQL 5.6
Tomcate 7.0
Windows 7
2.测试数据ID PID Name Isparent 0 -1 FMD-2013 TRUE 1 0 A-1 TRUE 2 1 Mechanical Failure:71.4% FALSE 3 1 Electrical Failure:28.6% FALSE 4 1 Machine Gun TRUE 5 4 Worn:100% FALSE 6 0 A-2 TRUE 7 6 Seal Failure:100% FALSE 8 6 Electrical TRUE 9 8 High Temperature TRUE 10 9 Failed To Operate:46.70% FALSE 11 9 Vibration:20.00% FALSE 12 9 Defective:6.70% FALSE 13 9 Distorted:6.70% FALSE 14 9 Noisy:6.70% FALSE 15 9 Out of Specification:6.70% FALSE 16 9 Short:6.70% FALSE 17 0 A-3 TRUE 18 17 Contaminated:42.10% FALSE 19 17 Metal Shavings:21.10% FALSE 20 17 Bearing Failure:15.80% FALSE 21 17 Failed To Operate:7.90% FALSE 22 17 Worn:7.90% FALSE 23 17 Broken:5.30% FALSE 24 0 A-4 TRUE 25 24 Leaking:31.50% FALSE 26 24 Seized:27.80% FALSE 27 24 Worn:24.60% FALSE 28 24 Mechanical Failure:16.10% FALSE 29 24 Hydraulic TRUE 30 29 Leakage:19.60% FALSE 31 29 Corrosion:17.60% FALSE 32 29 Inoperative:15.70% FALSE 33 29 Ruptured:13.70% FALSE 34 29 Oil Leakage:11.80% FALSE 35 29 Pressure Incorrect:11.80% FALSE 36 29 Broken:9.80% FALSE 37 24 Pneumatic TRUE 38 37 Broken:50% FALSE 39 37 Leakage:50% FALSE 40 24 Pressurized TRUE 41 40 Hydraulic TRUE 42 41 Leaking:75.90% FALSE 43 41 No Operation:10.30% FALSE 44 41 Mechanical Failure:6.90% FALSE 45 41 Breach:3.4% FALSE 46 41 Out of Specification:3.40% FALSE
3. 数据库sql格式 ztree.sql
DROP DATABASE IF EXISTS `test22`; CREATE DATABASE `test22` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `test22`; # # Table structure for table dtree # CREATE TABLE `ztree` ( `id` int(11) NOT NULL default '0', `pid` int(11) NOT NULL default '0', `name` varchar(100) NOT NULL default '' COMMENT 'node name', `isparent` boolean default false COMMENT 'false:close,true:open', `url` varchar(20) default '' COMMENT 'node path', `title` varchar(50) default '' COMMENT 'node title', `target` varchar(20) default '' COMMENT 'node tardet', `icon` varchar(11) default '', `iconOpen` varchar(20) default '', `openstatue` boolean default false COMMENT 'false:close,true:open', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=REDUNDANT;
4.数据库连接信息 inc.jsp<%@ page import="java.sql.Connection"%> <%@ page import="java.sql.DriverManager"%> <%@ page import="java.sql.Statement"%> <%@ page import="java.sql.ResultSet"%> <%@ page import="java.sql.ResultSetMetaData"%> <% String drv = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test22"; String usr = "root"; String pwd = "123456"; %>
5.HTML文件 bigDataDemo_normal.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE> ZTREE DEMO </TITLE> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="css/demoStyle/demo.css" type="text/css"> <link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="js/jquery-1.4.2.js"></script> <script type="text/javascript" src="js/jquery-ztree-2.4.js"></script> <SCRIPT LANGUAGE="JavaScript"> <!-- var zTree1; var setting; setting = { expandSpeed: "", checkable : true, async: true, //asyncUrl: "asyncData/nodeForBigData.php", asyncUrl: "data/asyncData/nodeForBigData.jsp", asyncParam: ["prod_id"] }; $(document).ready(function(){ reloadTree(); }); function reloadTree() { var nodes = []; if ($("#init_2").attr("checked")) { setting.async = false; nodes = zNodesBig; } else { setting.async = true; nodes = []; } zTree1 = $("#treeDemo").zTree(setting, nodes); } //--> </SCRIPT> </HEAD> <BODY> <center class="headTitle">大数据量演示<span> —— 普通加载</span></center> <TABLE border=0 width="700" class="tb1"> <TR> <TD width=340px align=center valign=top> <div class="zTreeDemoBackground"> <ul id="treeDemo" class="tree"></ul> </div> </TD> <TD width=360px align=left valign=top> <div class="demoContent"> <li class="title focus"> <font color="red" style="font-size:12px;">此演示需要发布到 php 服务器下方能正常执行。<br/> 使用 Tomcat 的朋友,请修改asyncUrl的值</font> </li> <li class="title focus"> <button class="ico star" onfocus="this.blur();"></button>加载方式 <ul class="remark">——改换不同的加载方式进行比较(总节点数:397 个)</ul> <ul> <INPUT TYPE="radio" id="init_1" NAME="initRadio" checked onclick="reloadTree();">异步加载 <INPUT TYPE="radio" id="init_2" NAME="initRadio" onclick="reloadTree();">一次性加载(<font color="red">会假死</font>) </ul> </li> <li class="title focus"> <button class="ico books" onfocus="this.blur();"></button>建议说明 <ul class="remark">1、这个 Demo 是针对总节点数较多,但每一级节点数量较少的例子</ul> <ul class="event"> <li> 浏览器整体的性能都不是特别好,尤其是IE,因此对于节点总数较多,每层节点数不多,层数较复杂的情况,建议使用异步加载模式,因为异步加载模式最大的好处就是用多少加载多少,对于一个复杂的树来说,用户访问页面时一般情况下是不会一个个全部节点点击一遍</li> <li></li> <li> 对于同级节点数据量很多时,异步加载也会出现假死,建议模仿“大数据量演示”下的“高级异步加载”的例子进行自定义的异步加载</li> </ul> <ul class="remark">2、取消展开、折叠特效 setting.expandSpeed = "";</ul> <ul class="event"> <li> 动画特效会比较耗费资源,因此对于节点很多的情况下,就不要使用动画特效了</li> </ul> <ul class="remark">3、如果你有好的建议,也请提供出来,谢谢了</ul> <ul class="event"> <li> </li> </ul> </li> </div> </TD> </TR> </TABLE> </BODY> </HTML>
6.从数据库读取ztree节点文件 nodeForBigData.jsp<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" buffer="none"%> <%@ include file="inc.jsp"%> <%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.*" pageEncoding="utf-8"%> <%! class DemoObj { public String id; public String pId; public String code; public String name; public String state; public List<DemoObj> nodes = new ArrayList<DemoObj>(); } class DemoData { private List<DemoObj> demoDataList; private Map<String, DemoObj> demoDataMap; public List<DemoObj> getDataByPId(String pId) { if (pId!=null && demoDataMap.containsKey(pId)) { return demoDataMap.get(pId).nodes; } else { return demoDataList; } } public DemoData () { try { Class.forName(drv).newInstance(); Connection conn = DriverManager.getConnection(url, usr, pwd); Statement stm = conn.createStatement(); ResultSet rs = stm.executeQuery("select * from ztree;"); ResultSetMetaData rsmd = rs.getMetaData(); demoDataList = new ArrayList<DemoObj>(); demoDataMap = new HashMap<String, DemoObj>(); while (rs.next()) { DemoObj d0 = new DemoObj(); d0.id=rs.getString(1); d0.pId=rs.getString(2); d0.code=rs.getString(5); d0.name=rs.getString(3); d0.state=rs.getString(10); demoDataMap.put(d0.id, d0); } rs.close(); stm.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); out.println(e); } for(String key : demoDataMap.keySet()){ DemoObj d = demoDataMap.get(key); if (demoDataMap.containsKey(d.pId)) { demoDataMap.get(d.pId).nodes.add(d); } else { demoDataList.add(d); } } } } %> [<% String pId = request.getParameter("prod_id"); String pCount = request.getParameter("count"); DemoData d = new DemoData(); List<DemoObj> nodes = (d.getDataByPId(pId)); int i=0; for (DemoObj o : nodes) { if (i>0) {%>,<%} %>{ "prod_id": "<%=o.id%>", "prod_code": "<%=o.code%>", "name": "<%=o.name%>", "prod_parent_id": "<%=o.pId%>", "prod_state": "<%=o.state%>"<% if (o.nodes != null && o.nodes.size()>0 ) { %>, isParent:true<% } %>}<% i++; } %>]
2013年11月06日 19:06
目前还没有答案
相关推荐
在IT领域,尤其是在Web开发...总结,Java实现ZTree异步加载涉及前端ZTree的配置、Ajax请求的发送,以及后端Java服务的处理和数据返回。理解这个过程并正确实施,可以显著提升ZTree的用户体验,尤其是在处理大量数据时。
最近项目中有一个比较大型的树节点加载,网上面也看过一些解决方案,感觉都不是很好,也有很多误区,比如单击节点时加载子...ztree fileter方法是在每次展开时都会执行,所以根据不同的请求达到异步加载子节点的需求。
"ztree异步加载"正是解决这一问题的一种高效方案。ZTree是一款基于JavaScript的富UI组件,它提供了一种灵活的方式来构建可交互的树形控件。在处理大量数据时,一次性加载所有节点会导致页面响应变慢,用户体验下降,...
### jQuery ZTree异步加载详解 #### 一、概述 jQuery ZTree插件是一款功能强大的树形控件,被广泛应用于Web开发中,用于展示层级结构数据。在大数据量的场景下,同步加载所有节点数据可能会导致页面加载缓慢,用户...
【标题】"ztree异步加载demo(有说明文档)" 涉及到的知识点主要围绕着ZTree,这是一个非常流行的JavaScript组件,主要用于构建树形结构的界面,尤其适用于网站导航、文件目录管理和组织结构展示等场景。异步加载是...
【zTree异步加载Demo】是一个基于SpringMVC框架和MySQL数据库实现的示例,它展示了如何使用zTree这一流行的JavaScript树形插件进行异步数据加载。zTree是一款功能强大的jQuery插件,广泛用于构建多级目录结构,如...
通过对这些源码的学习,开发者可以掌握如何结合后台数据和前端交互,实现zTree异步加载的完整流程,从而在自己的项目中灵活运用这一技术。同时,这也为初学者提供了一个很好的学习实例,有助于理解异步加载在实际...
**ZTree 异步加载树结构详解** ZTree 是一款基于 jQuery 的强大的树形插件,广泛应用于构建具有层级关系的列表。在处理大量数据时,为了提高用户体验,避免一次性加载所有节点导致页面卡顿,我们可以采用异步加载...
例如,一个基本的zTree异步加载配置可能如下所示: ```javascript var setting = { async: { enable: true, url: "your/data/api", autoParam: ["id"], otherParam: {"token": "yourToken"}, dataFilter: ...
以下是一个简单的ZTree异步加载示例: ```javascript $(function() { var setting = { async: { enable: true, url: "/getNodes", type: "post", autoParam: ["id"], otherParam: {"type": "async"} }, ...
通过以上方式,zTree异步加载全国地区可以有效地解决大数据量问题,提供流畅的交互体验。在实际应用中,还需要考虑错误处理、数据缓存、分页加载等策略,以进一步优化性能和用户体验。同时,要确保服务器端接口设计...
《zTree异步加载详解——打造高效数据交互体验》 在IT行业中,zTree是一款广泛应用于Web开发的JavaScript树插件,它以其轻量级、灵活性和强大的功能深受开发者喜爱。尤其是在处理大量数据的场景下,zTree的异步加载...
在"ZTree 异步加载 SSH JSON"这个主题中,我们将深入探讨如何利用ZTree实现异步加载数据,并结合SSH(Spring、Struts2、Hibernate)框架以及JSON格式的数据来完成这一过程。 首先,SSH框架是Java Web开发中的常用...
4. **异步加载数据**:当用户展开树形菜单的某个节点时,ZTree会自动触发异步请求,调用DWR中的后台方法获取子节点数据。后台处理完毕后,将结果返回给前端。 5. **接收并渲染数据**:前端接收到数据后,ZTree会...
在上述问题中,开发者遇到了在S2SH项目中使用zTree异步加载树节点的问题。首先,我们需要了解zTree异步加载的基本配置。`settingMan`对象包含了zTree的配置参数: 1. `data.simpleData.enable : true`:开启简单...
异步加载是zTree的核心特性之一,它允许在用户滚动或点击节点时按需加载子节点数据,减少了初始页面加载时的数据量,提高了页面响应速度。实现异步加载需要设置`async`参数,例如: ```javascript var setting = { ...
在解决jQuery zTree异步加载添加子节点时出现的重复问题之前,我们首先需要理解zTree树插件的基本特性和其工作原理。zTree是一个基于jQuery的树形控件,它支持多功能的树形结构展示,并且可以轻松实现节点的增删改查...
在本文中,我们将深入探讨jQuery zTree插件的两个核心功能:异步加载和模糊搜索。zTree是一款广泛使用的JavaScript树形控件,它能够帮助开发者构建动态、交互性强的树结构界面。以下是对这两个功能的详细解释: 一...
知识点四:zTree异步加载的关键配置项 1. enable属性:设置为true以启用异步加载功能。 2. url属性:指定服务器端servlet的路径,用于获取异步加载的数据。 3. autoParam属性:自动传递给服务器的参数名称列表,这里...
zTree异步加载展开第一级节点的实现方法 zTree异步加载展开第一级节点的实现方法是指在使用zTree插件时,如何实现异步加载展开第一级节点的功能。实现该功能需要在setting中的callback中添加onAsyncSuccess回调函数...