Foros del Web » Programando para Internet » Javascript »

Carga dinamica de archivos y administración de memoria

Estas en el tema de Carga dinamica de archivos y administración de memoria en el foro de Javascript en Foros del Web. Que tal compañeros, vengo a ustedes solicitando ayuda sobre un tema que vengo tratando de resolver desde hace tiempo, antes que nada, los pongo al ...
  #1 (permalink)  
Antiguo 02/12/2012, 22:11
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Carga dinamica de archivos y administración de memoria

Que tal compañeros, vengo a ustedes solicitando ayuda sobre un tema que vengo tratando de resolver desde hace tiempo, antes que nada, los pongo al tanto del proyecto...

El escenario...
El proyecto es una aplicación web la cual se basa completamente en Ajax, así todas las peticiones son enviadas via Ajax, por lo cual "nunca" se recarga la página, cada petición puede tener dependencias (archivos CSS y JS), hasta este momento todo funciona al 100%, la razón de esto es porque la aplicación trabaja con sockets (node.js) e información en tiempo real, así para evitar estar abriendo y cerrando sockets todo se maneja via Ajax (peticiones HTTP)...

El problema...
Mi problema es que no tengo mucha idea de como manejar los scripts de JS, especificamente en cuanto a la memoria que este ocupa, el punto es que en cada petición debo revisar las dependencias y si las hay cargar en memoria, PERO, también en cada petición nueva debo liberar la memoria ocupada por los scripts previamente cargados y eh aquí mi problema, no tengo del todo claro como administrar la memoria de dichos scripts...

Soluciones encontradas...
Soluciones como tal no eh encontrado, pero si eh estado investigando y haciendo pruebas, pero no estoy seguro si lo que eh intentado funciona del todo, en fin, lo que eh investigado es meter todo el código en objetos (namespace¿?), así cuando necesite liberar la memoria unicamente eh de definir el objeto como null
Código Javascript:
Ver original
  1. var Objeto = function() {
  2.      this.deleteAllEvents = function() {};
  3. };
  4.  
  5. //cargo el objeto
  6. var nuevoObjeto = new Objeto();
  7.  
  8. //libero memoria
  9. nuevoObjeto.deleteAllEvents();
  10. nuevoObjeto = null;

Hasta ahorita lo eh implementado, pero no se si realmente funcione del todo teniendo en cuenta que probablemente el usuario visite varias veces la misma sección, por lo tanto cargará una y otra vez el mismo script, el punto es que no quiero saturar la memoria ni alentar el navegador y esa es la razón por la que acudo a ustedes, así que agradezco cualquier ayuda/comentario al respecto...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #2 (permalink)  
Antiguo 03/12/2012, 07:38
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Carga dinamica de archivos y administración de memoria

yo que tú utilizaría un FW especializado como ExtJS, Dojo, YUI o similares, éstos ya implementan toda la arquitectura necesaria para una adecuada implementación OOP en JS, además de la moderna GUI que pueden ofrecerte.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 03/12/2012, 19:19
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Carga dinamica de archivos y administración de memoria

Que tal, agradezco la propuesta enviada, en fin, no busco implementar OOP en JS, o al menos ese no es mi objetivo principal, lo que busco es evitar llenar la memoria (y que se genere un "memory leak") cargando una y otra vez los scripts, ya que JQuery (lo que uso en este momento) cada vez que carga dinamicamente un script ($.getScript) este lo agrega a un array (eval/seq/X, donde X es un indice referente a un archivo previamente cargado), sin embargo, puedes cargar 5 veces el mismo script y este se guarda en el array, por lo tanto el código se mantiene en memoria, lo que busco es precisamente eliminar referencias en el DOM (lo que en teoria logro con deleteAllEvents() usando die y off propios de JQuery en los eventos estanciados) y a su vez que se libere la memoria del script cargado previamente, pero no logro hacerlo, eh estado haciendo pruebas y el array crece sin control aun "matando" los eventos creados y los propios objetos que trae el script...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: ajax, dinamica, funcion, js, memoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.