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 相关文章推荐
javascript插入样式实现代码
Feb 22 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
Sep 13 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
jQuery $.each遍历对象、数组用法实例
Apr 16 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
如何在 Vue.js 中使用第三方js库
Apr 25 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
微信小程序实现转盘抽奖
Sep 21 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
Oct 26 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
怎样辨别一杯好咖啡
2021/03/03 新手入门
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
JavaScript 代码压缩工具小结
2012/02/27 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
vue实现路由切换改变title功能
2019/05/28 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
使用C++扩展Python的功能详解
2018/01/12 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
车间班组长岗位职责
2013/11/13 职场文书
物理教师自荐信范文
2013/12/28 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
给病人的慰问信
2015/03/23 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
子女赡养老人协议书
2016/03/23 职场文书
商业计划书之服装
2019/09/09 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫
canvas 中如何实现物体的框选
2022/08/05 Javascript