Webbapplikationen tycks gå långsammare när browsern varit igång länge. Finns det en minnesläcka på klientsidan? Undersök!
Jag ligger bra till tidsmässigt just nu i projektet så jag hade möjlighet att titta närmare på frågan. Det visade sig att minnesläckor i webbläsaren i samband med vissa Javascript/DOM-kopplingar är välkända, och diskuteras bland annat på den här bloggen, i denna CodeProject-artikel och hos Microsoft.
Ett problem tycks vara eventhanterare, och att man alltid bör "koppla bort" dem då sidan avslutas (vid window-objektets unload-event). Spontant känner jag att detta automatiskt borde hanteras av den funktionalitet som från början kopplar upp eventhanterarna, exempelvis $addHandler om man använder AJAX Library. Kanske är det redan så? Jag tror dock inte det. Jag ska gräva lite djupare i det hela, blir väl till slut kanske tvungen att implementera något i stil med denna lösning för eventhantering.
Sedan får man inte glömma bort alla andra mönster som kan framkalla de här minnesläckorna (som beskrivs mer noggrannt i ovan nämnda artiklar). Ibland, när det känns som att jag tvingas lägga tid på olika hack för att komma runt begränsningar i webbläsaren, önskar jag att hela termen "webbapplikation" aldrig uppstått...tacka vet jag hederliga hemsidor!
3 kommentarer: