我已经看到使用jquery ajax的请求响应进行延迟加载但是我是否有任何方法可以使用Socket IO懒惰地加载节点数据?例如,我想要这样的东西
$("#tree").jstree({
"core": {
"data": function(data){
socket.on("node",function(node){
data = node;
})
}
}
});
每次点击我都可以调用数据回调来设置节点。有什么想法吗?谢谢你的期待。
答案 0 :(得分:1)
我不了解Socket IO,但我确定你没有使用jstree做得正确:这是你的功能应该是什么样的:
function(currentNode, callback){
//we got it called twice, prolly because of angular
if(currentNode.id=='#'){
var me = this;
// perform a request with your framework here and call this once you have your data, '#' mean we're loading the root nodes
var nodes = <your data>
callback.call(me, nodes);
}else{
var me = this;
// we're loading child nodes
// same as before ask the nodes to the server then call the callback with the data loaded.
var nodes = <your data>
callback.call(me, nodes)
}
}
注意:&#34;这&#34;是树实例。
答案 1 :(得分:0)
这有帮助吗?
var ws = new WebSocket("ws://xxxx.xx/xxx/");
ws.onopen = function () {
ws.onmessage = function (evt) {
$("#codeeditor").jstree({
"core": {
"data": {
"data": function(data){
data = evt.data;
}
}
}
});
};
};
还需要一些保持WebSocket一直连接的方法,我在这里没有显示。