Een reeds bestaande webapplicatie performed onder IE6 zeer slecht. Laadtijden per pagina van ~10 seconden zijn normaal. Let wel, die ~10 seconden zijn alleen onder IE6. (Fx, IE7 laden acceptabel (~3 sec.). En om alvast de IE6 boeroepers voor te zijn: het zijn o.a. franse gebruikers in afgelegen gebieden op oude machines: upgraden is voor hun geen optie op dit moment. We zitten dus in een heftig welles, nietes traject met één van onze opdrachtgevers.
Ik heb de nobele taak gekregen om te inventariseren waar we mogelijk op een snelle en gemakkelijke manier performance winsten kunnen behalen.
De gebruikelijke methodes zijn in ieder geval het lijstje van YSlow. Daar zitten een aantal zaken in welke niet op vrij gemakkelijke manier in de bestaande applicatie te verwerken zijn. Het gaat hier om een asp.net webapplicatie met 3rd party controls (DevExpress) dus even zomaar de images, styles en javascripts aan passen is geen gemakkelijke opgave. We zijn reeds bezig om de applicatie conform standaarden te bouwen (uiteraard ook met de benodigde semantiek in het achterhoofd). Alleen de klant heeft nu een probleem, en dit probleem moet nu opgelost worden.
Omdat de steekwoorden snel en simpel zijn heb ik een aantal kleine aanpassingen 'bedacht', waarbij ik graag de mening van een groter publiek zou willen hebben. Dit, en om mijn bevindingen te staven alvorens ik het e.e.a. ga implementeren.
Cookies
Uit onderzoek blijkt dat een cookie van deze applicatie exact 4096 bytes is. Volgens MSDN kan een cookie in IE5.5 (mogelijk ook 6???) maximaal 4096 bytes bevatten. Nu weet ik niet helemaal hoe het mechanisme werkt, maar wordt er een soort FiFo systeem gebruikt waarbij de cookie constant opnieuw aangemaakt wordt, gevuld tot de max. bytes en daardoor er voor zorgt dat het laden traag is/gaat?
Het volledig negeren van cookies gaat vanwege het karakter van de applicatie niet, maar het limiteren van de cookie info kan een snelheidswinst opleveren?
Javascripting
Zoveel mogelijk javascript scripts voorzien van het "defer" attribuut? Dit is natuurlijk vrij gemakkelijk te testen, alleen de webapplicatie draait op het lokale netwerk van de klant. Ook in Frankrijk dus. Onze test- en acceptatieomgevingen performen perfect onder IE6 i.e. geen verschil met Fx en IE7.
Meta tag
Het lijkt misschien vrij nutteloos, alleen de interface lijkt responsief. Dat is natuurlijk ook vrij belangrijk. (Alles om de klant tevreden te krijgen).
Afbeeldingen
Er staat helemaal onderaan een afbeelding.aspx. Dit is een dummy afbeelding om de sessie niet te laten verlopen. Deze wordt om de n-minuten met een Javascript Interval ververst. De afbeelding lijkt traag te laden (volgens YSlow). Na onderzoek wordt dit geserveerd als text/html. Zou het schelen om daar een image/<contenttype> op terug te laten geven?
Server settings
De netwerk topologie van de klant is mij niet bekend, maar kan bij een brak netwerk in combinatie met Reverse DNS lookups een dusdanige performance drop geven? Tevens is de webserver zo geconfigureerd dat de Web- en Scriptresources alsmede de .Aspx en static files in IIS gecached worden. Http Compression is ook ingeschakeld.
Client Settings
Het kan zijn dat een <vendor> Antivirus pakket performance drops kan geven. Ervan uitgaande dat er helemaal geen Antivirus pakket draait kunnen we dat alvast uitsluiten.
De reden dat veel vragen een open karakter hebben is dat we het hier in diverse omgevingen het probleem niet kunnen traceren en/of reproduceren. Een Virtual PC Image (XP, IE6 en 128 Mb RAM) draait prima. Om ongeveer een strekking van de klacht te geven:
Ik heb de nobele taak gekregen om te inventariseren waar we mogelijk op een snelle en gemakkelijke manier performance winsten kunnen behalen.
De gebruikelijke methodes zijn in ieder geval het lijstje van YSlow. Daar zitten een aantal zaken in welke niet op vrij gemakkelijke manier in de bestaande applicatie te verwerken zijn. Het gaat hier om een asp.net webapplicatie met 3rd party controls (DevExpress) dus even zomaar de images, styles en javascripts aan passen is geen gemakkelijke opgave. We zijn reeds bezig om de applicatie conform standaarden te bouwen (uiteraard ook met de benodigde semantiek in het achterhoofd). Alleen de klant heeft nu een probleem, en dit probleem moet nu opgelost worden.
Omdat de steekwoorden snel en simpel zijn heb ik een aantal kleine aanpassingen 'bedacht', waarbij ik graag de mening van een groter publiek zou willen hebben. Dit, en om mijn bevindingen te staven alvorens ik het e.e.a. ga implementeren.
Cookies
Uit onderzoek blijkt dat een cookie van deze applicatie exact 4096 bytes is. Volgens MSDN kan een cookie in IE5.5 (mogelijk ook 6???) maximaal 4096 bytes bevatten. Nu weet ik niet helemaal hoe het mechanisme werkt, maar wordt er een soort FiFo systeem gebruikt waarbij de cookie constant opnieuw aangemaakt wordt, gevuld tot de max. bytes en daardoor er voor zorgt dat het laden traag is/gaat?
Het volledig negeren van cookies gaat vanwege het karakter van de applicatie niet, maar het limiteren van de cookie info kan een snelheidswinst opleveren?
Javascripting
Zoveel mogelijk javascript scripts voorzien van het "defer" attribuut? Dit is natuurlijk vrij gemakkelijk te testen, alleen de webapplicatie draait op het lokale netwerk van de klant. Ook in Frankrijk dus. Onze test- en acceptatieomgevingen performen perfect onder IE6 i.e. geen verschil met Fx en IE7.
Meta tag
HTML:
1
| meta http-equiv="Page-Exit" content="blendTrans(Duration=0.0)" /> |
Het lijkt misschien vrij nutteloos, alleen de interface lijkt responsief. Dat is natuurlijk ook vrij belangrijk. (Alles om de klant tevreden te krijgen).
Afbeeldingen
Er staat helemaal onderaan een afbeelding.aspx. Dit is een dummy afbeelding om de sessie niet te laten verlopen. Deze wordt om de n-minuten met een Javascript Interval ververst. De afbeelding lijkt traag te laden (volgens YSlow). Na onderzoek wordt dit geserveerd als text/html. Zou het schelen om daar een image/<contenttype> op terug te laten geven?
Server settings
De netwerk topologie van de klant is mij niet bekend, maar kan bij een brak netwerk in combinatie met Reverse DNS lookups een dusdanige performance drop geven? Tevens is de webserver zo geconfigureerd dat de Web- en Scriptresources alsmede de .Aspx en static files in IIS gecached worden. Http Compression is ook ingeschakeld.
Client Settings
Het kan zijn dat een <vendor> Antivirus pakket performance drops kan geven. Ervan uitgaande dat er helemaal geen Antivirus pakket draait kunnen we dat alvast uitsluiten.
De reden dat veel vragen een open karakter hebben is dat we het hier in diverse omgevingen het probleem niet kunnen traceren en/of reproduceren. Een Virtual PC Image (XP, IE6 en 128 Mb RAM) draait prima. Om ongeveer een strekking van de klacht te geven:
Het draait k.u.t., doe er wat aan
Heart..pumps blood.Has nothing to do with emotion! Bored