Запретить время ожидания браузера при использовании плагина treeTable jquery - PullRequest
0 голосов
/ 25 мая 2009

Я использую плагин 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 ]

1 голос
/ 25 мая 2009

любая функция, вызываемая из setTimeout или setInterval, запускается вне основного цикла и поэтому не будет блокировать другие сценарии. Это так просто, как:

window.onload = function(){setTimeout("your_function()",0)}
0 голосов
/ 27 июля 2009

Насколько велик набор данных, который вы используете? сколько узлов в дереве? А сколько у него корневых узлов?

Возможно, вы захотите проверить версию 2.2.2 плагина treeTable, который должен быстрее инициализировать большие деревья. Эту версию можно скачать на странице проекта плагина .

...