Ajax jstree 3.0.2动态树总是从缓存加载数据,而不是对服务器进行新的调用

Ajax jstree 3.0.2动态树总是从缓存加载数据,而不是对服务器进行新的调用,ajax,caching,getjson,jstree,Ajax,Caching,Getjson,Jstree,我有一棵树。加载页面时,jstree会从服务器上很好地填充,因为它会对服务器进行新的调用,但在这之后,每当我刷新页面时,它都会从缓存中获取数据,而不会调用服务器,从而总是将旧数据填充。我使用的是JStree3.0.2版本。下面是加载页面时生成jstree的代码 $('#tree').jstree({ 'core': { data:{ 'url':'getjstree' // this is the url which will get the json data from the serve

我有一棵树。加载页面时,jstree会从服务器上很好地填充,因为它会对服务器进行新的调用,但在这之后,每当我刷新页面时,它都会从缓存中获取数据,而不会调用服务器,从而总是将旧数据填充。我使用的是JStree3.0.2版本。下面是加载页面时生成jstree的代码

$('#tree').jstree({
'core': {
data:{
'url':'getjstree'   // this is the url which will get the json data from the server
}
}});
我们如何解决这个问题以在每次调用时获得新数据,我之前想到的一个解决方案是使用javascript代码通过调用来硬刷新

location.reload(true);
但这确实刷新了json数据,但进入了递归调用,从而挂起了页面。
请帮助我们如何解决此问题。

使用此解决方案解决了问题

$('#tree').jstree({
'core': {
data:{
'cache':false,
'url':'getjstree'   // this is the url which will get the json data from the server
}
}});

JSTree插件使用键“JSTree”将树状态保存在浏览器的本地存储中。因此,在调用jstree之前,应该从localStorage中删除该键,如下所示:

//Removes jstree cached state from localStorage
localStorage.removeItem('jstree');

$('#tree').jstree({
    'core': {
        data:{
            'url':'getjstree'
        }
    }
});

我只是在url的末尾添加了一个随机参数。。。像这样

'url' : function(node){
    return "/myrequestpath?randParam="+getRandParam();
}
                                                }

我定义getRandParam返回一个介于1和1000之间的随机数。。。如果我使用了时间戳,它可能会运行得更好,更健壮,但这对我来说是有效的。请注意,我使用了url的函数版本,但想法是一样的(函数每次都有效,但url可能只设置一次,我不确定)。

@Sam,看看我关于清理本地存储的回答。奇怪。。。这个解决方案对我有效,而@AndréBonna的解决方案对我无效。这是最新版本的jstree@good work#Andrew,我认为AJAX请求的问题比jstree的问题更大。它显示在JSTree上,但真正的问题是AJAX。看看