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 闭包深入理解(closure)
May 27 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
Apr 10 Javascript
node.js实现爬虫教程
Aug 25 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
Sep 04 Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 Javascript
vue2.0结合Element实现select动态控制input禁用实例
May 12 Javascript
JS逻辑运算符短路操作实例分析
Jul 09 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
angular4+百分比进度显示插件用法示例
May 05 Javascript
JavaScript实现滑块验证解锁
Jan 07 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 和 HTML
2006/10/09 PHP
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
js option删除代码集合
2008/11/12 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
Python 字典dict使用介绍
2014/11/30 Python
Python中的生成器和yield详细介绍
2015/01/09 Python
Python实现的桶排序算法示例
2017/11/29 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
python绘制立方体的方法
2018/07/02 Python
python的turtle库使用详解
2019/05/10 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
初三政治教学反思
2014/01/30 职场文书
车队司机自我鉴定
2014/03/02 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
环保项目建议书
2014/08/26 职场文书
安全责任协议书范本
2016/03/23 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS