Foros del Web » Programando para Internet » Javascript »

los javascript largos fallan?

Estas en el tema de los javascript largos fallan? en el foro de Javascript en Foros del Web. Cuando los javascripts son muy largos... fallan? Tengo el siguiente código (más o menos) alert ("he llegado a la función con valor de n="+n); switch ...
  #1 (permalink)  
Antiguo 02/05/2012, 13:30
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
Puntos: 31
los javascript largos fallan?

Cuando los javascripts son muy largos... fallan?

Tengo el siguiente código (más o menos)

alert ("he llegado a la función con valor de n="+n);
switch (n)
{
case 1:
bla bla bla...(codigo);
case 2:
alert ("he llegado al caso 2 del switch");
bla bla bla...(codigo);
case 3:
(codigo);
... (etc)

---------

Sin haber tocado esta parte del código que antes estaba bien, he estado tocando otras partes. Y de repente... esto me empieza a volver loco.
Primer alert me dice "he llegado a la función con valor de n=2"
luego me sale otro alert que me dice "he llegado al caso 2 del switch"... y luego no me hace el código... cuando no he tocado nada que pueda verse influenciado en esa parte del código. El código que he utilizado va en la ejecución antes de llegar a este punto. Me estoy volviendo loco.
  #2 (permalink)  
Antiguo 02/05/2012, 13:35
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: los javascript largos fallan?

Con el poco código que presentas es dificil tener una respuesta 100% valida pero puedo sugerirte que despues de cada case 1: ...
coloques un break

ej


Código Javascript:
Ver original
  1. switch(){
  2.  
  3. case 1:
  4.  
  5. // ...
  6. break;
  7.  
  8. case 2:
  9. // ...
  10. break;
  11.  
  12.  
  13. }

El por que de los break es por que el compilador al no encontrarlo ejecuta todo los demás case.

Saludos.

Última edición por gjx2; 02/05/2012 a las 13:39 Razón: Aclarar el por que del break
  #3 (permalink)  
Antiguo 02/05/2012, 13:57
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
Puntos: 31
Respuesta: los javascript largos fallan?

Cita:
Iniciado por gjx2 Ver Mensaje
Con el poco código que presentas es dificil tener una respuesta 100% valida pero puedo sugerirte que despues de cada case 1: ...
coloques un break
Si tengo que poner todo el código no hay hueco en el foro. Jejejejeje

He mentido, no llega a meterse en el case.

He metido un alert justo antes del switch que me dice el valor de n
luego meto un alert en el case...

resulta que me dice que n=un valor.

Pero luego no entra en el case de dicho valor.

(Si, los break los conocía. En cada case tengo un if y un else, en el if, al final tengo un break, y en el else, al final tengo otro break)

Y como digo... esto ha empezado a fallar cuando he aumentado el código que va en otras funciones que en ejecución son previas a este punto.

Pero si no ha dado ningún error, y llega al switch con un valor... no entiendo por qué falla y no entra en el case.

Hay un límite de memoria? Es posible haberlo superado? (tuve un error de desbordamiento de pila hace unos días, pero fue por una instrucción mal puesta... pero en esta ocasión no me salta ningún error de ningun tipo)

Edito: La última variable que he metido me sirve de contador, es numérica. Se me acaba de ocurrir la manera de utilizar esta variable para prescindir de otra que es bouleana. A ver si reduciendo variables...

Última edición por Kritik; 02/05/2012 a las 14:04
  #4 (permalink)  
Antiguo 02/05/2012, 14:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: los javascript largos fallan?

buenas.
¿la consola del navegador reporta algo? considera también el tipo de valor de la variable y del case. no es lo mismo tener un integer en la variable y en el case un string. es decir,
Código:
var value = 0;
switch(value){
case '0': alert('es un string'); break; // esta linea no se ejecuta;
case 0: alert('es un integer'); break;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 03/05/2012, 13:18
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
Puntos: 31
Respuesta: los javascript largos fallan?

Cita:
Iniciado por zerokilled Ver Mensaje
buenas.
¿la consola del navegador reporta algo? considera también el tipo de valor de la variable y del case. no es lo mismo tener un integer en la variable y en el case un string. es decir,
Código:
var value = 0;
switch(value){
case '0': alert('es un string'); break; // esta linea no se ejecuta;
case 0: alert('es un integer'); break;
}
Nada más leer tu respuesta supe que esa era la causa, ya que en una parte de la ejecución anterior concateno números de los cuales luego sale el que llevo al switch... así que lo estaba llevando como cadena de texto en vez de como número. Ya está arreglado.

Muchísimas gracias.

Cuando se manejan códigos taaan largos... es una rayada averiguar donde está la causa de cada error.

Etiquetas: largos
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 14:56.