J'ai une table html avec environ 30 colonnes et quelque part entre 10 à 500 lignes ish. Je voudrais montrer/cacher un ensemble de colonnes o un clic de bouton.jQuery afficher/cacher la colonne sur la performance de la grande table
J'ai essayé 2 approches
- itérer par thead e de la table et faire .show() ou .hide() sur la TH et TD.
- itérez le th th de la table et changez de classe pour afficher/masquer TH et TD.
La fonction est implémentée comme extrait suivant. Cependant, la performance n'est pas terrible. Afficher/Masquer dire 20 colonnes prend environ 5 ~ 10 secondes sur peut-être 80 ~ 120 lignes de données.
Je me demande simplement s'il y a quelque chose que nous pouvons faire pour le faire aller plus vite.
function ToggleHeadVisibility(showHide) {
var index = 0;
$('#' + gridViewName + ' thead th').each(function(index) {
index++;
if (showHide == "SHOW") {
/*
$('#' + gridViewName + ' th:nth-child(' + (index) + ')').show();
$('#' + gridViewName + ' td:nth-child(' + (index) + ')').show();
*/
$('#' + gridViewName + ' th:nth-child(' + (index) + ')').removeClass('columnHide');
$('#' + gridViewName + ' td:nth-child(' + (index) + ')').removeClass('columnHide');
} else if (showHide = "HIDE") {
/*
//if (showColumnArray.has($(this).get(0).innerHTML)) {
if (showColumnArray.has($(this).attr('title'))) {
$('#' + gridViewName + ' th:nth-child(' + (index) + ')').show();
$('#' + gridViewName + ' td:nth-child(' + (index) + ')').show();
}
else {
$('#' + gridViewName + ' th:nth-child(' + (index) + ')').hide();
$('#' + gridViewName + ' td:nth-child(' + (index) + ')').hide();
}
*/
if (showColumnArray.has($(this).attr('title'))) {
$('#' + gridViewName + ' th:nth-child(' + (index) + ')').removeClass('columnHide');
$('#' + gridViewName + ' td:nth-child(' + (index) + ')').removeClass('columnHide');
} else {
$('#' + gridViewName + ' th:nth-child(' + (index) + ')').addClass('columnHide');
$('#' + gridViewName + ' td:nth-child(' + (index) + ')').addClass('columnHide');
}
}
});
}
une comparaison intéressante afficher/masquer la performance http://www.learningjquery.com/2010/05/now-you-see-me-showhide-performance – Eatdoku