Ho scritto un piccolo widget di chat-box che esegue una chiamata ajax ogni secondo, per recuperare i nuovi messaggi che sono stati postati. Il problema è che sta perdendo memoria, e dopo solo 15 minuti di apertura si blocca il mio browser (Firefox).Perdita di memoria in jQuery Chiamate AJAX
E 'probabilmente me, come io sono un novizio relativo, e sono sicuro che ho perso qualcosa o no sto disinserimento mio variabili, ecc ..
var chat = {}
chat.fetchMessages = function() {
$.ajax({
url: '/chat_ajax.php',
type: 'post',
data: { method: 'fetch'},
success : function(data) {
$('#chat .messages').html(data);
$("#chat").scrollTop($("#chat")[0].scrollHeight);
}
});
}
chat.interval = setInterval(chat.fetchMessages, 1000);
chat.fetchMessages();
qualcuno può sguardo alla mia (di base) e vedere se riesci a individuare dove si verifica la perdita di memoria e cosa sto facendo male? Devo disabilitare alcune variabili o qualcosa del genere?
Grazie mille!
Quale versione di jQuery? Se includi jQuery 1.9.1, si verifica ancora? Le versioni precedenti di jQuery avevano una cache interna in cui venivano memorizzate semplici stringhe html, quindi quando gli sviluppatori utilizzavano codice come il proprio sopra, generava quella che sembrava essere una perdita di memoria perché la cache non veniva mai cancellata. –
ciò che non ho capito è $ ('# chat .messages'). Html (data); ottieni sempre l'intero contenuto della chat con la richiesta AJAX. Penso che dovresti richiedere solo la parte che l'utente non ha ancora letto per aggiungere questo messaggio a .messages. altrimenti i dati saranno un testo enorme alla fine. –