Saludos a todos.
Me comunico con uds. con el fín de obtener ayuda en un problema que se me ha presentado...
Soy desarrollador web y actualmente me encuentro trabajando en la implementación de un sitio web para una empresa.
En mis principios como programador empecé desarrollando en Java, lo cual me convirtió en fanatico de ese lenguaje y sobretodo de la Programación orientada a objetos, razón que me motivó a buscar la forma de desarrollar en JavaScript bajo la misma perspectiva.
En este caso, implementé un esquema orientado a objetos del lado del cliente con JavaScript, y desde ahi gestiono toda la información desplegada en la página y demás(Obviamente que solo cargo las cosas que necesito).
Estoy usando Arrays que contienen referencia a otros objetos creados por mí. Tambien trato en lo posible que las estructuras usen o apunten al mismo objeto primitivo en caso que se pueda, es decir, trato de eliminar la redundancia de objetos en la memoria... Así que, en términos generales me atrevería a decir que el diseño está bien hecho y que no hay errores en cuanto a arquitectura o mala gestión de la memoria etc.(También trato de dejar sin referencia a los objetos que no voy a usar, para efectos de que el garbage collector de javascript se los lleve y libere memoria... )
Todo esto suena bien y demás, pero el problema que se me ha presentado es que los tiempos de respuesta son DEMASIADO ALTOS :S... no sé qué es lo que pasa.. porque igual tampoco he usado muchos objetos ni muchas instancias de los mismos... de hecho no me imagino como serían los tiempos si decido meterle carga a la página....
Entonces, me gustaria saber si alguno de uds. se ha tropezado con alguna situación similar y qué ha hecho para solventar los inconvenientes ?
para ubicarlos un poco en el contexto, les anexo el modelo al cual hago referencia. Básicamente son 4 clases las que utilizo.(Entiandase clases como prototipos, que es la forma como JavaScript los llama)
function userContactList(){
var atrUserContacts = new Array(); (Coleccion de objetos tipo Contact)
var atrUserBalance;
var atrObjToInput; (Referencia a objeto tipo ToInput)
.--- Metodos de la clase ---
}
function Contact(pId,pName,pPicture,
pStatus,pCountry,pPhone,pPrice,showInDom){
var atrId = pId;
var atrName = pName;
var atrPicture = pPicture;
var atrStatus = pStatus;
var atrCountry = pCountry;
var atrPhoneNumber = pPhone;
var atrSelected = false;
var atrDomReference; (Referencia a un objeto DOM)
var atrPrice = pPrice;
.--- Metodos de la clase ---
}
function ToInput(useAutoComplete){
var atrContacts = new Array(); (Referencia a objeto tipo ContactBubble)
var atrUseAc = useAutoComplete;
var atrWidthCounter = 3;
var atrHeigthCounter = 3;
var atrObjInput = document.getElementById("nameInput");
var atrObjInputContainer = document.getElementById("nameContainer");
.--- Metodos de la clase ---
}
function ContactBubble(pContactReference){
var atrWidth;
var atrContactReference = pContactReference;(Recibe por parametro un objeto tipo Contact)
var atrReference;
.--- Metodos de la clase ---
}
Le agradeceria en el alma a quien pudiera contribuir con algo para solucionar mi problema.
Gracias por todo.
SAludos !