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 相关文章推荐
Dom加载让图片加载完再执行的脚本代码
May 15 Javascript
input+select(multiple) 实现下拉框输入值
May 21 Javascript
jquery的map与get方法详解
Nov 04 Javascript
jqgrid 编辑添加功能详细解析
Nov 08 Javascript
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 Javascript
elementUI select组件使用及注意事项详解
May 29 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 session安全问题分析
2011/06/24 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
python删除特定文件的方法
2015/07/30 Python
Python函数装饰器实现方法详解
2018/12/22 Python
pandas删除指定行详解
2019/04/04 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
七年级政治教学反思
2014/02/03 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
深入理解go slice结构
2021/09/15 Golang