jquery jstree加载数据太多卡死 5

如果某一节点下目录超过500个,IE会提示是否允许JS脚本运行,并且目录加载不全,大约只加载了300左右。百度了一下这个的解决方法,http://www.jb51.net... 如果某一节点下目录超过500个,IE 会提示是否允许JS脚本运行,并且目录加载不全,大约只加载了300左右。
百度了一下这个的解决方法,http://www.jb51.net/article/22448.htm
看不太懂,求高手解读
展开
 我来答
匿名用户
2015-02-27
展开全部

意思是让您把jstree的js 里面那个位置的那段代码替换成他的:

for (var i=0; i<data.length; i++) 

var n = TREE_OBJ.create(data[i], $(NODE)); //就是这里特别耗
if (onaddnode) onaddnode(n); 

var firstChild = TREE_OBJ.children(NODE)[0]; 
if ($(firstChild).attr('id')==-1) 
TREE_OBJ.remove(firstChild); 

修改成:
var children=""; 
for (var i=0; i<data.length; i++) 

children += TREE_OBJ.parseJSON(data[i]); 

if (children != "") 
$(NODE).children('ul').html(children); 
var firstChild = TREE_OBJ.children(NODE)[0]; 
if ($(firstChild).attr('id')==-1) 
TREE_OBJ.remove(firstChild);

区别是一个是for循环里一次一次的生成节点插入页面,这样本来就很卡

另一个是将所有节点先存入一个变量里,然后在一次性插入页面里,这样效率自然高很多很多

追问
你会改吗,关键我本地找不到这段代码
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式