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 相关文章推荐
IE8下String的Trim()方法失效的解决方法
Nov 08 Javascript
JS保存和删除cookie操作 判断cookie是否存在
Nov 13 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
jQuery设置指定网页元素宽度和高度的方法
Mar 25 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
解析js如何获取css样式
Dec 11 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
简述vue中的config配置
Jan 23 Javascript
浅析Vue.js中v-bind v-model的使用和区别
Dec 04 Javascript
JS基础之逻辑结构与循环操作示例
Jan 19 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 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
Zerg建筑一览
2020/03/14 星际争霸
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
使用PHP编写的SVN类
2013/07/18 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
Display SQL Server Version Information
2007/06/21 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
Python中模块string.py详解
2017/03/12 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
python 多进程队列数据处理详解
2019/12/23 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
python中常用的数据结构介绍
2021/01/12 Python
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
报到证丢失证明
2014/01/11 职场文书
运动会广播稿50字
2014/01/26 职场文书
2015年招生工作总结
2015/05/04 职场文书
户外拓展训练感想
2015/08/07 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python