Pregunta

Estoy ejecutando una solicitud AJAX desde una página web con JavaScript (+ jQuery) cada 5 segundos para un conjunto de datos JSON. Dejé mi solicitud durante la noche, y por la mañana mi computadora se había congelado completamente. Lo reduje a mi navegador web y ahora, utilizando el Rastreador de recursos de Google Chrome, puedo ver que cada solicitud contribuye a un nuevo gasto de memoria, y el antiguo JSON persiste.

Como el JSON de origen cambia constantemente, lo llamo con la marca de tiempo como parámetro, para evitar el almacenamiento en caché ... Me doy cuenta de que el almacenamiento en caché resolvería este problema, pero también haría que mis datos no fueran válidos.

¿Alguna idea? Estoy sobrescribiendo la variable anterior, por lo que no veo por qué se deben conservar los datos anteriores. Los aumentos de memoria no ocurren en el mismo intervalo en las solicitudes de AJAX, así que tal vez sea algo más. Estaré encantado de enviarle a alguien el código de forma privada, si es de ayuda.

Gracias a todos :-)

Gausie

¿Fue útil?

Solución

¿Qué estás haciendo con los datos?

Probablemente no sea el culpable de jaquery, el culpable.

¿Estás creciendo? ¿Has olvidado declarar una variable usando el prefijo var? ¿eliminas contenido usando innerHTML = ''?

Otros consejos

Primero, asegúrese de que es la solicitud ajax la que causa la fuga. No solicite este ajax cada 5 segundos y verifique si la memoria aún tiene pérdidas.

Si es la solicitud, ¿quizás sobrescribe una variable, pero tiene otra variable que apunta a estos datos? Algo como esto:

var a = json_object;
var b = json_object;
//A lot of other code here
var a = json_object2;

json_object todavía está en la memoria, var b apunta a él. Si no hay var b, ¿quizás lo agregue a algún mapa o matriz? En tal caso, el mapa o la matriz apunta a él.

No se puede responder porque no proporcionó algún ejemplo de código. En general, comprobar el uso incorrecto del cierre ... De todos modos, consulte esta publicación http://www.crockford.com/javascript/memory/leak .html y usa Google o proporciona algunos ejemplos. Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top