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

时间:2009-05-25 15:37:27

标签: 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() {
        $(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是一个相当大的表的类。 initialize是一个递归调用。

可以修改它以避免浏览器给出的超时时间吗?我已经看到了使用setTimeout的参考(参见问题#779379),但我不确定如何应用它。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

您可能需要查看treeTable插件的2.2.2版本,该插件应该可以更快地初始化大型树。此版本可以在plugin's project page下载。