layer.confirm无法阻塞js执行,导致ztree插件的beforeRemove回调函数未等待用户确定删除便已经移除界面中的节点, 因此可能会出现前后台数据不一致情况,正常逻辑理应删除后台数据然后移除界面中的ztree节点元素. 解决方案:不使用ztree提供的默认删除功能(beforeRemove函数返回false即可),在layer.confirm中手动调用removeNode方法实现前台与后台的数据同步删除(舍弃ztree提供的自动删除功能).代码如下: //beforeRemov…
zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree删除节点. <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - edit</TITLE> <meta http-equiv="content-type" content="text/html; charset=UTF-8&q…
大家都知道php调用系统命令常用的主要有以下几种方法: 如exec(), system(), passthru(), shell_exec() 这几个函数的用法在此不做说明,有需要的请查阅php相关手册. 今天主要说的是:非阻塞的方式执行系统命令. 那么,首先什么是非阻塞呢? 要说非阻塞,我们先说一下什么是阻塞,下面先看一个例子: a.php <? echo "begin:<br>"; echo exec('php b.php'); //我这里为了方便测试是拿php直…
前言 随着移动互联网的蓬勃发展,手机App层出不穷,其业务也随之变得错综复杂.针对于开发人员来说,可能之前的一个业务只需要调取一次第三方接口以获取数据,而如今随着需求的增加,该业务需调取多个不同的第三方接口.通常,我们处理方法是让代码同步顺序的去调取这些接口.显然,调取接口数量的增加必然会造成响应时间的增加,势必会对系统性能造成一定影响. 为了保证系统响应迅速,需要寻找一种方法能够使调取接口能够异步执行,而java正好提供了类似的方法,在java.util.concurrent中包含了Futur…
阻塞队列:线程安全 按 FIFO(先进先出)排序元素.队列的头部 是在队列中时间最长的元素.队列的尾部 是在队列中时间最短的元素.新元素插入到队列的尾部,并且队列检索操作会获得位于队列头部的元素.链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低. 注意: 1.必须要使用take()方法在获取的时候达成阻塞结果2.使用poll()方法将产生非阻塞效果 import java.util.concurrent.ExecutorService; import ja…
第1部分 问题引入 <Java并发编程实践>一书6.3.5节CompletionService:Executor和BlockingQueue,有这样一段话: "如果向Executor提交了一组计算任务,并且希望在计算完成后获得结果,那么可以保留与每个任务关联的Future,然后反复使用get方法,同时将参数timeout指定为0,从而通过轮询来判断任务是否完成.这种方法虽然可行,但却有些繁琐.幸运的是,还有一种更好的方法:完成服务CompletionService." 这是…
效果图: 一.下载zTree插件 地址:http://www.ztree.me 二.html代码 <link href="../Scripts/zTree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" /> <script src="../Scripts/zTree/js/jquery-1.4.4.min.js"></script> <script src…
<script type="text/javascript"> //删除节点 zTree.removeNode(treeNode); //获取删除节点的父节点 var parentNode = treeNode.getParentNode(); //如果父节点下的子节点不存在 if(parentNode.children.length == 0) { //修改父节点图标为文件夹样式 parentNode.isParent = true; parentNode.open =…
int.TryParse非预期执行引发的思考   问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Request.QueryString["id"] = null int.TryParse( Request.QueryString["id"], out id ); //使用 id 进行其他操作... 因为Request.QueryString["id"]…
setting添加 edit: { drag: { isCopy: false, isMove: true }, enable: true,//设置是否处于编辑状态 showRemoveBtn: showRemoveAndRenameBtn, showRenameBtn: showRemoveAndRenameBtn, removeTitle: "删除", renameTitle: "修改" }, view: { dblClickExpand: false, sho…