Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
卸载时执行什么javascript?_Javascript_Jquery_Jstree - Fatal编程技术网

卸载时执行什么javascript?

卸载时执行什么javascript?,javascript,jquery,jstree,Javascript,Jquery,Jstree,我正在处理一个ASP.NET页面,该页面将大量AJAX数据加载到jsTree中。足够让我经常收到“此页面上的脚本导致您的web浏览器运行缓慢”警告 在做了相当多的工作之后,我成功地将数据的获取和加载到树中的过程分解为足够小的部分,以避免出现问题 我现在的问题是,如果我已将足够的数据加载到树中,然后退出页面(通过导航到其他页面或关闭浏览器),我会得到“此页面上的脚本导致web浏览器运行缓慢” 很明显,在某个地方,有一些代码挂接到树中,在卸载时运行,试图进行一些不必要的清理 我尝试过调用jsTree

我正在处理一个ASP.NET页面,该页面将大量AJAX数据加载到jsTree中。足够让我经常收到“此页面上的脚本导致您的web浏览器运行缓慢”警告

在做了相当多的工作之后,我成功地将数据的获取和加载到树中的过程分解为足够小的部分,以避免出现问题

我现在的问题是,如果我已将足够的数据加载到树中,然后退出页面(通过导航到其他页面或关闭浏览器),我会得到“此页面上的脚本导致web浏览器运行缓慢”

很明显,在某个地方,有一些代码挂接到树中,在卸载时运行,试图进行一些不必要的清理

我尝试过调用jsTree.destroy()、删除树DOM等,但问题仍然存在

有没有人知道我如何知道unload()上运行的是什么代码,这样我就可以找到停止它的方法


我的意思是,页面即将关闭。没有发生任何重要的事情。但是很多工作正在做。为什么?

有多少节点加载到树中?可能太多了,您需要按需加载,即当树节点展开时,从服务器加载它的子节点。jsTree有一个选项“progressive_unload”,使其递归删除所有子节点,但默认值为
false
。如果您没有这个集合,为什么不在window unload上添加一个事件处理程序并查看之后会发生什么,或者在jsTree的清理代码中放置一些断点以查看执行它的位置/原因呢?还有一种可能性是,这只是jQuery的默认处理。jsTree绑定了很多事件。jQuery会自动清理绑定的事件——这对于具有糟糕的垃圾收集的IE6和IE7尤其必要,否则会导致页面之间持续存在内存泄漏。我怀疑你能轻易地停止这种行为,你也不会真的想这样做——相反,你可能需要寻找方法来限制会话中加载的内容量(例如,其他评论者的建议动态加载)Zoidberg——我的问题不是加载,而是卸载。这不是通过单独调用服务器将子项加载到树中的问题。我已经在做了。如果我在树中有太多的子对象——不管它们是如何到达那里的——我会在退出页面时出错。