Hey,
Het projectje waar ik op dit moment mee bezig ben heeft één hele grote pagina die erg langzaam is op dit moment. Het probleem is dat we soms over een stuk of 500 tables loopen en daar 6 DOM wijzigingen aanbrengen. Eigenlijk valt hier erg weinig aan te doen zover ik kan bedenken. Wat de JS doet is één veld showen, de rest hiden, aan de hand van een nummertje.
Op dit moment doen we elke keer dit:
We wijzigen dus elk veld, terwijl er eigenlijk maar ééntje hidden moest worden, en één geshowed moest worden. (er staat er altijd maar één, of geen, aan)
De open en close zien er alsvolgt uit:
Is het misschien de moeite waard om overal eerst een check te doen of ze toevallig al op de juiste waarde staan? Ik weet niet wat sneller is, het uitlezen en dan beslissen wat te doen, of het klakkeloos in de DOM veranderen.. Dan zouden we al snel 4 * 500 DOM-mutaties veranderen in leesacties + een IFje.
Heeft iemand misschien nog andere ideeën over hoe dit geoptimaliseerd kan worden? Het grootste probleem is dat de klant IE6 gebruikt, in Firefox kost het maar een fractie van de tijd.
Het projectje waar ik op dit moment mee bezig ben heeft één hele grote pagina die erg langzaam is op dit moment. Het probleem is dat we soms over een stuk of 500 tables loopen en daar 6 DOM wijzigingen aanbrengen. Eigenlijk valt hier erg weinig aan te doen zover ik kan bedenken. Wat de JS doet is één veld showen, de rest hiden, aan de hand van een nummertje.
Op dit moment doen we elke keer dit:
code:
1
2
3
4
5
6
7
8
| case IETS:
openDetailField(redenFld, statusDetailsContainer.rows[0]);
closeDetailField(datumFld, statusDetailsContainer.rows[1]);
closeDetailField(omschrijvingFld, statusDetailsContainer.rows[2]);
closeDetailField(postcodeFld, statusDetailsContainer.rows[3]);
closeDetailField(huisnrFld, statusDetailsContainer.rows[4]);
closeDetailField(toevoegingFld, statusDetailsContainer.rows[5]);
break; |
We wijzigen dus elk veld, terwijl er eigenlijk maar ééntje hidden moest worden, en één geshowed moest worden. (er staat er altijd maar één, of geen, aan)
De open en close zien er alsvolgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| function closeDetailField(field, row) {
field.value = "";
row.style.display = "none";
}
function openDetailField(field, row) {
field.disabled = null;
if (IE) {
row.style.display = "inline";
} else {
row.style.display = "table-row";
}
} |
Is het misschien de moeite waard om overal eerst een check te doen of ze toevallig al op de juiste waarde staan? Ik weet niet wat sneller is, het uitlezen en dan beslissen wat te doen, of het klakkeloos in de DOM veranderen.. Dan zouden we al snel 4 * 500 DOM-mutaties veranderen in leesacties + een IFje.
Heeft iemand misschien nog andere ideeën over hoe dit geoptimaliseerd kan worden? Het grootste probleem is dat de klant IE6 gebruikt, in Firefox kost het maar een fractie van de tijd.