Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
使用treeTable jquery插件时防止浏览器超时_Jquery_Internet Explorer_Firefox - Fatal编程技术网

使用treeTable jquery插件时防止浏览器超时

使用treeTable jquery插件时防止浏览器超时,jquery,internet-explorer,firefox,Jquery,Internet Explorer,Firefox,我使用Ludo van den Boom的treeTable jquery插件将表表示为可扩展树。一旦我的数据集变大,Firefox和IE在调用$(document.ready)中的插件时都会超时 插件的公共方法是: $.fn.treeTable = function(opts) { options = $.extend({}, $.fn.treeTable.defaults, opts); return this.each(function() { $(thi

我使用Ludo van den Boom的treeTable jquery插件将表表示为可扩展树。一旦我的数据集变大,Firefox和IE在调用$(document.ready)中的插件时都会超时

插件的公共方法是:

$.fn.treeTable = function(opts) {
    options = $.extend({}, $.fn.treeTable.defaults, opts);

    return this.each(function() {
        $(this).addClass("treeTable").find("tbody tr").each(function() {
            // Initialize root nodes only whenever possible
            if (!options.expandable || $(this)[0].className.search("child-of-") == -1) {
                initialize($(this));
            }
        });
    });
};
它从以下位置调用:

$(document).ready(function() {
   $(".reportTable").treeTable();
}); 
其中reportTable是相当大的表的类。初始化是一个递归调用


是否可以对其进行修改以避免两种浏览器都出现超时?我看到过使用setTimeout的引用(参见问题#779379),但我不确定如何应用它。

从setTimeout或setInterval调用的任何函数都在主循环之外运行,因此不会阻止其他脚本。简单到:

window.onload = function(){setTimeout("your_function()",0)}

您使用的数据集有多大?树中有多少个节点?它有多少根节点


您可能想查看treeTable插件的2.2.2版,它应该可以更快地初始化大型树。此版本可从下载。

您能否发布一些详细信息,说明您是如何使用此版本的?请定义“详细信息”。。。这真的很简单。您可以通过setTimeout调用函数,而不仅仅是调用函数。浏览器在看到setTimeout语句时不会停止,因此onReady/onload函数将立即完成,并且耗时的函数将在不阻塞页面或事件脚本的情况下运行。如果页面脚本未被阻止,浏览器将更能容忍长时间运行的脚本。