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 相关文章推荐
在多个页面使用同一个HTML片段《续》
Mar 04 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
Javascript中对象继承的实现小例
May 12 Javascript
javascript插件开发的一些感想和心得
Feb 28 Javascript
js原生方法被覆盖,从新赋值原生的方法
Jan 02 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
15 分钟掌握vue-next响应式原理
Oct 13 Javascript
js实现适配移动端的拖动效果
Jan 13 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
基于better-scroll 实现歌词联动功能的代码
May 07 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 Javascript
js实现电灯开关效果
Jan 19 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
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
python使用多进程的实例详解
2018/09/19 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
医院员工辞职信范文
2015/05/12 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL