使用treeTable jquery插件时防止浏览器超时
我使用Ludo van den Boom的treeTable jquery插件将表表示为可扩展树。一旦我的数据集变大,Firefox和IE在调用$(document.ready)中的插件时都会超时 插件的公共方法是:使用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
$.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函数将立即完成,并且耗时的函数将在不阻塞页面或事件脚本的情况下运行。如果页面脚本未被阻止,浏览器将更能容忍长时间运行的脚本。