FAQ |
Kalender |
2009-07-05, 23:39 | #1 | ||
|
|||
Mycket flitig postare
|
Hej,
Har ett litet problem med vad som verkar vara en minnesläcka av något slag i ett javascript. Det "pollar" servern varje sekund och om det kommit ut ny information så hämtar scriptet det (mha jQuery och json) och lägger till en ny div innuti ett element... Vad jag gör är att jag samlar alla "rader" i en javascript array, när den hämtar en/flera nya rader så lägger den till varje rad med en funktion. Den funktionen i sig räknar antalet rader i arrayn, om det är mer än 20 så tar det bort den första i arrayn och även en div med ett visst ID. Se kod nedan: Kod:
entries.reverse(); var rid = entries.pop(); $('#entry' + rid).remove(); entries.reverse(); Några tips på vad man kan göra för att förbättra? Och verkligen spola bort datan som man tar bort? Ska man bygga om arrayn när den når ett visst index? |
||
Svara med citat |
2009-07-06, 00:42 | #2 | ||
|
|||
Flitig postare
|
Javascript i sig kan inte "läcka" minne eftersom det är automatisk allokering/deallokering. Har du kollat så att du inte instantierar skriptet ånyo varje gång den här sekundtimern tickar, alltså så att du får en ny loop som börjar snurra varje sekund? Det kan lätt hända om man är oaktsam med setTimeout() t.ex.
|
||
Svara med citat |
2009-07-06, 21:27 | #3 | |||
|
||||
Mycket flitig postare
|
Det är ganska lätt att råka ut för minnesläckor om man inte vet vilka mönster man bör akta sig för.
@InnoCast: Kolla om den här artikeln kan vara till nån hjälp: http://www.ibm.com/developerworks/web/libr...ary/wa-memleak/ |
|||
Svara med citat |
Svara |
|
|