2009-05-25 13 views
0

J'utilise treeTable jquery plugin de Ludo van den Boom pour représenter une table en tant qu'arborescence extensible. Une fois que mon ensemble de données devient grand à la fois Firefox et IE timeout sur l'exécution de l'appel au plugin dans mon $ (document) .ready.Empêche le timeout du navigateur lors de l'utilisation de treeTable jquery plugin

méthode publique de Le plugin est:

$.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)); 
      } 
     }); 
    }); 
}; 

Il est appelé à partir de:

$(document).ready(function() { 
    $(".reportTable").treeTable(); 
}); 

Où reportTable est la classe d'une table assez grande. initialize est un appel récursif.

Est-ce que cela peut être modifié pour éviter les délais d'expiration des deux navigateurs? J'ai vu une référence à l'utilisation de setTimeout (voir la question # 779379) mais je ne suis pas sûr de savoir comment l'appliquer.

Répondre

1

Toute fonction appelée depuis setTimeout ou setInterval s'exécute en dehors de la boucle principale et ne bloque donc pas les autres scripts. C'est aussi simple que:

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

Fonctionne. Merci. –

+0

Pourriez-vous poster quelques détails sur la façon dont vous avez obtenu ce bon fonctionnement s'il vous plaît? – BenB

+0

Avec la version 1.4 du plugin? – BenB

0

Quelle est la taille de l'ensemble de données que vous utilisez? combien de nœuds sont dans l'arbre? Et combien de nœuds de racine a-t-il?

Vous voudrez peut-être consulter la version 2.2.2 du plugin treeTable, qui devrait initialiser les grands arbres beaucoup plus rapidement. Cette version peut être téléchargée au plugin's project page.

Questions connexes