JQuery ztree 异步加载实例讲解


Posted in Javascript onFebruary 25, 2016

本来要做一个文件目录浏览界面,需要遍历所有的文件和目录,很显然一次性读取时很费时费力的一件事情。

因此就需要做异步加载....

准备工作:

1下载 JQuery ZTree

复制其中的JS和CSS即可,其实没必要引那么多,用什么引什么就可以。

JQuery ztree 异步加载实例讲解

2 需要fastJSON,用来转换JSON对象

我下载JAR包后,引入到Eclipse中总是报找不到class错误。

解决办法:把jar包放在WEB-INF/lib下即可。

代码实例:

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
 <link rel="stylesheet" href="resources/css/demo.css" type="text/css">
 <link rel="stylesheet" href="resources/css/zTreeStyle/zTreeStyle.css" type="text/css">
 <script type="text/javascript" src="resources/js/jquery-1.4.4.min.js"></script>
 <script type="text/javascript" src="resources/js/jquery.ztree.core-3.5.js"></script>
 
</head>
<body>
 <div class="zTreeDemoBackground left">
  <ul id="treeDemo" class="ztree"></ul>
 </div>
 <SCRIPT type="text/javascript">
  var setting = { 
    data: { 
     simpleData: { 
      enable: true 
     } 
    } ,
    async: {
     enable: true,
     url:"/TestZTree/test",
     autoParam:["id", "name", "level"],
     otherParam:{"otherParam":"zTreeAsyncTest"},
     dataFilter: filter
    }
  }; 
  function filter(treeId, parentNode, childNodes) {
   if (!childNodes) return null;
   for (var i=0, l=childNodes.length; i<l; i++) {
    childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
   }
   return childNodes;
  }
  var zNodes =[ 
   { id:1, pId:0, name:"parentNode 1", open:true}, 
   { id:11, pId:1, name:"parentNode 11",isParent:true}, 
   { id:111, pId:11, name:"leafNode 111"}, 
   { id:112, pId:11, name:"leafNode 112"}, 
   { id:12, pId:1, name:"parentNode 12",isParent:true}, 
   { id:121, pId:12, name:"leafNode 121"}, 
   { id:13, pId:1, name:"parentNode 13", isParent:true}, 
   { id:2, pId:0, name:"parentNode 2", isParent:true} 
  ]; 
 
  $(document).ready(function(){ 
   $.fn.zTree.init($("#treeDemo"), setting, zNodes); 
  }); 
 </SCRIPT>
</body>
</html>

testServlet.java

package com.test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class testServlet extends HttpServlet{
 @Override 
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
  doPost(request, response); 
 } 
 
 @Override 
 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
  String id = request.getParameter("id"); 
  String name = request.getParameter("name"); 
  String level = request.getParameter("level"); 
  String otherParam = request.getParameter("otherParam"); 
  System.out.println(id + "|" + name + "|" + level + "|" + otherParam); 
   
  List<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>(); 
  for(int i = 0; i < 5; i++){ 
   HashMap<String,Object> hm = new HashMap<String,Object>(); //最外层,父节点    
   hm.put("id",id+i);//id属性 ,数据传递 
   hm.put("name", id+i); //name属性,显示节点名称 
   hm.put("pId", id); 
    
   list.add(hm); 
  } 
  response.getWriter().write(JSON.toJSONString(list)); 
 } 
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
 xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <display-name></display-name>
 <servlet>
 <servlet-name>testServlet</servlet-name>
 <servlet-class>com.test.testServlet</servlet-class>
 </servlet>

 <servlet-mapping>
 <servlet-name>testServlet</servlet-name>
 <url-pattern>/test</url-pattern>
 </servlet-mapping>
  
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

效果图:

JQuery ztree 异步加载实例讲解

更多关于ztree控件的内容,请参考专题《jQuery插件ztree使用汇总》

以上就是关于jquery异步加载,希望对大家学习jquery程序设计有所帮助。

Javascript 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
JS获得图片alt信息的方法
Apr 01 Javascript
举例讲解JavaScript中关于对象操作的相关知识
Nov 16 Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
Oct 15 Javascript
JS实现json对象数组按对象属性排序操作示例
May 18 Javascript
Vue组件之极简的地址选择器的实现
May 31 Javascript
element el-input directive数字进行控制
Oct 11 Javascript
Vue 2.0 侦听器 watch属性代码详解
Jun 19 Javascript
javascript的惯性运动实现代码实例
Sep 07 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
Node.js编写组件的三种实现方式
Feb 25 #Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 #Javascript
你所未知的3种Node.js代码优化方式
Feb 25 #Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 #Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 #Javascript
javascript随机抽取0-100之间不重复的10个数
Feb 25 #Javascript
JavaScript实现多种排序算法
Feb 24 #Javascript
You might like
php判断邮箱地址是否存在的方法
2016/02/13 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
js实现楼层导航功能
2017/02/23 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
Python使用django获取用户IP地址的方法
2015/05/11 Python
在python中安装basemap的教程
2018/09/20 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python将视频转换为全字符视频
2019/04/26 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
销售行政专员职责
2014/01/03 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
图书馆义工感想
2015/08/07 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript