2010-08-12 7 views
1

J'ai une table énorme, 1 rang avec environ 2600 colonnes (c'est un diagramme de Gantt)JQuery et clonage grande table

Ce que je suis en train de faire est de cloner ce tableau et le copier 100 fois quelque part sur la page (au lieu de redessiner la table 100 fois il semble être moins efficace, je peux me tromper bien)

var $templateTable = $("div#GTT_TLayout").clone(); 
//there are 100 divs matching it 
$("div[id ^= 'taskgrid_bar_' ]").each(function(){ 
    ... 
    $(this).before($templateTable.html()); 
}); 

le problème est que certains clients éprouvent ce problème « temps de scripter ».

La question que j'ai est, est-il une meilleure façon de le faire qui est plus efficace?

Merci beaucoup

+0

Avez-vous essayé en passant juste '$ templateTable' à' avant() '' sans appeler .html() '? – Pointy

+0

Je sais que c'est incroyablement décalé, mais si vous travaillez avec quelque chose d'aussi gros, et si les scripts côté client sont trop lents, alors la prochaine étape logique est de passer à un script côté serveur? –

+0

@Pointy, essayé et pour certaines raisons, il ne la génération des tables et @Yi Jiang, ont essayé aussi. Cependant, la performance est encore pire que celle de JQuery. Même si, finalement, il va générer, mais très lent. Je peux voir que chaque ligne génère une ligne à la fois. L'avantage est qu'il garantit que le graphique sera généré. – Liming

Répondre

0

Vous pourriez aussi bien faire le .html() appel sur le $templateTable extérieur de la .each car il ne sert à rien d'appeler que 100 fois. Cela devrait aider un peu de toute façon.

+0

Bon point @amurra. Essayé, amélioré un peu, toujours causer des problèmes en fonction de l'ordinateur. :( – Liming

Questions connexes