gpt4 book ai didi

initialization - fancytree 多次重新加载的问题

转载 作者:行者123 更新时间:2023-12-02 03:27:26 29 4
gpt4 key购买 nike

我有一个日记应用程序,其中有一个 fancytree,显示登录用户的日记条目。在该树下方,我有另一个 fancytree,上面有一个下拉列表,可让您选择其他用户并浏览他们的日记条目。一旦您选择了一个用户,它就会获取他们的用户 ID,然后加载第二个树及其条目。这在大约第七次选择之前都非常有效,此时树挂起并基本上终止了我的 Tomcat session 。我必须重新启动 Tomcat 才能修复它。

我的 HTML 是:

<div class="journalList left-column">
<div id="logTree"></div>

<div class="browser">
<div class="userWrapper">
<h4>Browse Other User Logs</h4>
<select id="otherUser">
</select>
</div>
<div id="browseTree"></div>
</div>
</div>

ID logTree 是登录用户的 fancytree。browseTree 是选定用户的。

#logTree 的 JavaScript 相关代码。

$('#logTree').fancytree({
source: {
type: 'post',
cache: false,
url: "/LogbookServlet",
data: {action:"init", sub:"logtree"},
datatype: 'json'
},
lazyLoad: function(event, data) {
var node = data.node;
data.result = getLogTreeData(node.key);
},
loadChildren: function(event, data) {
var node = data.node;
var activeNode = $("#logTree").fancytree("getActiveNode");
if (activeNode) {
activeNode.setExpanded(true);
var mon = new Date().getMonth();
var curMonth = months[mon];
var children = activeNode.getChildren();
if (children) {
for (var i = 0; i < children.length; i++) {
var childNode = children[i];
var title = childNode.title;
if (title == curMonth) {
$("#logTree")
.fancytree("getTree")
.activateKey(childNode.key);
}
}
}
}
}
});

这部分代码在页面首次加载时被调用:

var otherUsrId;
$('#browseTree').fancytree({
source: [],
lazyLoad: function(event, data) {
var node = data.node;
data.result = getLogTreeData(node.key, otherUsrId);
},
loadChildren: function(event, data) {
var node = data.node;
}
});

我有一个用于选择的处理程序来检测用户的更改:

$('#otherUser').on('change select', function() {
// Get the User ID from the Select
otherUsrId = $(this).val();
getUserTree(otherUsrId);
});

这是 getUserTree() 的代码:

function getUserTree(otherUsrId) {
var userTree = $('#browseTree').fancytree("getTree");
userTree.reload({
url: "/LogbookServlet",
data: {action:"init", sub:"logtree", otherUsrId:otherUsrId},
datatype: 'json'
});
}

因此,在第七次选择用户后,“browseTree”fancytree 只是挂起,加载图标旋转,它杀死了我的浏览器。有任何想法吗?看起来也许有些东西被过于递归地调用了?不确定。

最佳答案

我不完全确定这会有帮助,但我注意到了一个关键点。请在创建树之前尝试添加此内容:

$(":ui-fancytree").fancytree("destroy");

这个缺失的destroy(有时)在重新加载时给我带来了问题,所以我希望它也能解决您的问题;-)

关于initialization - fancytree 多次重新加载的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52840434/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com