0 0

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>
					&nbsp;
					<INPUT TYPE="radio" id="init_1" NAME="initRadio" checked onclick="reloadTree();">异步加载&nbsp;
					<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>&nbsp;&nbsp;浏览器整体的性能都不是特别好,尤其是IE,因此对于节点总数较多,每层节点数不多,层数较复杂的情况,建议使用异步加载模式,因为异步加载模式最大的好处就是用多少加载多少,对于一个复杂的树来说,用户访问页面时一般情况下是不会一个个全部节点点击一遍</li>
					<li></li>
					<li>&nbsp;&nbsp;对于同级节点数据量很多时,异步加载也会出现假死,建议模仿“大数据量演示”下的“高级异步加载”的例子进行自定义的异步加载</li>
				</ul>
				<ul class="remark">2、取消展开、折叠特效 &nbsp;setting.expandSpeed = "";</ul>
				<ul class="event">
					<li>&nbsp;&nbsp;动画特效会比较耗费资源,因此对于节点很多的情况下,就不要使用动画特效了</li>
				</ul>
				<ul class="remark">3、如果你有好的建议,也请提供出来,谢谢了</ul>
				<ul class="event">
					<li>&nbsp;&nbsp;</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
目前还没有答案

相关推荐

    java实现ztree异步加载

    在IT领域,尤其是在Web开发...总结,Java实现ZTree异步加载涉及前端ZTree的配置、Ajax请求的发送,以及后端Java服务的处理和数据返回。理解这个过程并正确实施,可以显著提升ZTree的用户体验,尤其是在处理大量数据时。

    zTree异步加载子节点针对大数据量数列表

    最近项目中有一个比较大型的树节点加载,网上面也看过一些解决方案,感觉都不是很好,也有很多误区,比如单击节点时加载子...ztree fileter方法是在每次展开时都会执行,所以根据不同的请求达到异步加载子节点的需求。

    ztree异步加载

    "ztree异步加载"正是解决这一问题的一种高效方案。ZTree是一款基于JavaScript的富UI组件,它提供了一种灵活的方式来构建可交互的树形控件。在处理大量数据时,一次性加载所有节点会导致页面响应变慢,用户体验下降,...

    jquery ztree 异步加载

    ### jQuery ZTree异步加载详解 #### 一、概述 jQuery ZTree插件是一款功能强大的树形控件,被广泛应用于Web开发中,用于展示层级结构数据。在大数据量的场景下,同步加载所有节点数据可能会导致页面加载缓慢,用户...

    ztree异步加载demo(有说明文档)

    【标题】"ztree异步加载demo(有说明文档)" 涉及到的知识点主要围绕着ZTree,这是一个非常流行的JavaScript组件,主要用于构建树形结构的界面,尤其适用于网站导航、文件目录管理和组织结构展示等场景。异步加载是...

    zTree异步加载Demo

    【zTree异步加载Demo】是一个基于SpringMVC框架和MySQL数据库实现的示例,它展示了如何使用zTree这一流行的JavaScript树形插件进行异步数据加载。zTree是一款功能强大的jQuery插件,广泛用于构建多级目录结构,如...

    zTree异步加载简单示例VS2008项目完整源码

    通过对这些源码的学习,开发者可以掌握如何结合后台数据和前端交互,实现zTree异步加载的完整流程,从而在自己的项目中灵活运用这一技术。同时,这也为初学者提供了一个很好的学习实例,有助于理解异步加载在实际...

    ZTree学习(二):异步加载树结构 - CSDN博客1

    **ZTree 异步加载树结构详解** ZTree 是一款基于 jQuery 的强大的树形插件,广泛应用于构建具有层级关系的列表。在处理大量数据时,为了提高用户体验,避免一次性加载所有节点导致页面卡顿,我们可以采用异步加载...

    异步&同步加载树节点----zTree(一)

    例如,一个基本的zTree异步加载配置可能如下所示: ```javascript var setting = { async: { enable: true, url: "your/data/api", autoParam: ["id"], otherParam: {"token": "yourToken"}, dataFilter: ...

    jquery ztree 异步动态加载

    以下是一个简单的ZTree异步加载示例: ```javascript $(function() { var setting = { async: { enable: true, url: "/getNodes", type: "post", autoParam: ["id"], otherParam: {"type": "async"} }, ...

    使用ztree异步加载全国地区。

    通过以上方式,zTree异步加载全国地区可以有效地解决大数据量问题,提供流畅的交互体验。在实际应用中,还需要考虑错误处理、数据缓存、分页加载等策略,以进一步优化性能和用户体验。同时,要确保服务器端接口设计...

    ztree异步加载1

    《zTree异步加载详解——打造高效数据交互体验》 在IT行业中,zTree是一款广泛应用于Web开发的JavaScript树插件,它以其轻量级、灵活性和强大的功能深受开发者喜爱。尤其是在处理大量数据的场景下,zTree的异步加载...

    ZTree 异步加载 SSH JSON

    在"ZTree 异步加载 SSH JSON"这个主题中,我们将深入探讨如何利用ZTree实现异步加载数据,并结合SSH(Spring、Struts2、Hibernate)框架以及JSON格式的数据来完成这一过程。 首先,SSH框架是Java Web开发中的常用...

    ztree+dwr实现的异步加载树形菜单

    4. **异步加载数据**:当用户展开树形菜单的某个节点时,ZTree会自动触发异步请求,调用DWR中的后台方法获取子节点数据。后台处理完毕后,将结果返回给前端。 5. **接收并渲染数据**:前端接收到数据后,ZTree会...

    关于javaWeb(S2SH)中使用zTree异步加载树节点问题

    在上述问题中,开发者遇到了在S2SH项目中使用zTree异步加载树节点的问题。首先,我们需要了解zTree异步加载的基本配置。`settingMan`对象包含了zTree的配置参数: 1. `data.simpleData.enable : true`:开启简单...

    ztree 异步加载 拖拽 右键菜单 功能

    异步加载是zTree的核心特性之一,它允许在用户滚动或点击节点时按需加载子节点数据,减少了初始页面加载时的数据量,提高了页面响应速度。实现异步加载需要设置`async`参数,例如: ```javascript var setting = { ...

    jQuery zTree 异步加载添加子节点重复问题

    在解决jQuery zTree异步加载添加子节点时出现的重复问题之前,我们首先需要理解zTree树插件的基本特性和其工作原理。zTree是一个基于jQuery的树形控件,它支持多功能的树形结构展示,并且可以轻松实现节点的增删改查...

    jquery zTree异步加载、模糊搜索简单实例分享

    在本文中,我们将深入探讨jQuery zTree插件的两个核心功能:异步加载和模糊搜索。zTree是一款广泛使用的JavaScript树形控件,它能够帮助开发者构建动态、交互性强的树结构界面。以下是对这两个功能的详细解释: 一...

    jquery zTree异步加载简单实例分享

    知识点四:zTree异步加载的关键配置项 1. enable属性:设置为true以启用异步加载功能。 2. url属性:指定服务器端servlet的路径,用于获取异步加载的数据。 3. autoParam属性:自动传递给服务器的参数名称列表,这里...

    zTree异步加载展开第一级节点的实现方法

    zTree异步加载展开第一级节点的实现方法 zTree异步加载展开第一级节点的实现方法是指在使用zTree插件时,如何实现异步加载展开第一级节点的功能。实现该功能需要在setting中的callback中添加onAsyncSuccess回调函数...

Global site tag (gtag.js) - Google Analytics