Foros del Web » Programando para Internet » Javascript »

consejo para salir de una funcion

Estas en el tema de consejo para salir de una funcion en el foro de Javascript en Foros del Web. Tengo 5 selects dependientes y dentro de un array alojo los id de estos 5 select. Llamo a la funcion javascript que recibe el id ...
  #1 (permalink)  
Antiguo 17/04/2009, 13:08
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
consejo para salir de una funcion

Tengo 5 selects dependientes y dentro de un array alojo los id de estos 5 select.
Llamo a la funcion javascript que recibe el id del select actual, busca el id del select que le sigue y finalmente mediante ajax cargar ese select.
Pero si llegué el 5º select al buscar el siguiente se produce un error (advertencia en IE), porque no existen mas select.
Lo solucioné con un return.
Código PHP:
function cargarSelect(idSelects){
   ...
busca la posicion en el array
   if (!
listadoSelects[posicionSelectDestino]){
        return;
   }
   ...
ejecuta ajax

Que opinan de ese escape de la funcion?
Porque en otros codigos que hice utilizaba esta condición
Código PHP:
if(idSelectOrigen!=listadoSelects[listadoSelects.length-1]){ 
pero me parece que el return es mas eficiente. o estoy equivocado?
Gracias
  #2 (permalink)  
Antiguo 17/04/2009, 13:20
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: consejo para salir de una funcion

Sin mirar todo el contexto, ambas formas parecen igualmente efectivas. Para saber cuál es mejor podrías comparar tiempos de ejecución y consumo de memoria.
  #3 (permalink)  
Antiguo 17/04/2009, 13:25
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: consejo para salir de una funcion

Aha! y sino es mucho ¿como podria medir el tiempo de ejecucion?
  #4 (permalink)  
Antiguo 17/04/2009, 13:26
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: consejo para salir de una funcion

Creo que return false; es mas adecuado pero si la que creaste te funciona no tiene nada de malo.
Disculpa pero te quiero pedir un favor.
podrias poner eso que hiciste con los select
es que necesito algo similar

Que estes muy bien
  #5 (permalink)  
Antiguo 17/04/2009, 13:37
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: consejo para salir de una funcion

Pues aqui va, aunque debo decirte que lo desarrolle yo y puede haber errores aunque funciona en IE y FF sin problemas. (lo estoy modificando borra lo que tira error)
Codigo js
Código PHP:
function cargarSelect(idSelects){
    
posicionSelectDestino buscarEnArray(listadoSelectsidSelects)+1;
    if (!
listadoSelects[posicionSelectDestino]){
        return;
    }
    
posicionVaciar=posicionSelectDestino+1;
    
objSelectVaciar=document.getElementById(listadoSelects[posicionSelectDestino]+'Span');

    
objSelect=document.getElementById(listadoSelects[posicionSelectDestino]+'Span');//agrega Div al final, ej: select3Div
    
catPrevia =(document.getElementById(idSelects)).value;
    var 
serverPage 'ajaxCrearSelect.php?catPrevia='+catPrevia+'&select='+listadoSelects[posicionSelectDestino];
    
processajax(serverPageobjSelect"get""");

codigo html
Código PHP:
<span id="select1Span">
<select name="filtrocat1" size="10" id="select1" onChange="cargarSelect(this.id)">
  <option value="altaCategory.php" selected>(ninguna)</option><?
  
while ( $row mysql_fetch_array($result) ) { ?>
   <option value="<?=$row[cat_id]; ?>"<? if ($_GET[cat1]==$row[cat_id]) echo 'selected'?>>
   <?=$row['cat_name']; ?>
  </option> <?
?>
    </select></span>
<span id="select2Span"></span>
<span id="select3Span"></span>
<span id="select4Span"></span>
<span id="select5Span"></span>
  #6 (permalink)  
Antiguo 17/04/2009, 13:40
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: consejo para salir de una funcion

Me olvidaba codigo js
Código PHP:
var listadoSelects=new Array();
listadoSelects[0]="select1";
listadoSelects[1]="select2";
listadoSelects[2]="select3";
listadoSelects[3]="select4";
listadoSelects[4]="select5"
y mas php llamado por ajax
Código PHP:
$listadoTablas=array(
"select1"=>"category1",
"select2"=>"category2",
"select3"=>"category3",
"select4"=>"category4",
"select5"=>"category5"
);


$catPrevia = $_GET['catPrevia'];
$select = $_GET['select'];
if(validaSelect($select) && validaOpcion($catPrevia)){
    $tabla=$listadoTablas[$select];
    $respuesta=mysql_query("SELECT cat_id, cat_name FROM $tabla WHERE prev_cat='$catPrevia'") or die(mysql_error());?>
    <select name="filtrocat1" size="10" id="<?=$select?>" onChange="cargarSelect(this.id)">
        <option value="altaCategory.php" selected>(ninguna)</option><?
        
while ( $registro mysql_fetch_array($respuesta) ){ ?>
            <option value="<?=$registro['cat_id'];?>"><?=$registro['cat_name'];?></option><?
        
}?>
    </select><?    
}
  #7 (permalink)  
Antiguo 17/04/2009, 13:50
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: consejo para salir de una funcion

Gracias.
si lo quero ver y de modificarlo va a ser mucho
si veo que me puede ayudar si es para poder guiarme
ya que stoy usando asp
  #8 (permalink)  
Antiguo 17/04/2009, 14:09
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: consejo para salir de una funcion

Para medir el tiempo esta es la idea más o menos:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
<
script>
function 
t(id){return document.getElementById(id);}
function 
aMedir(){
    var 
inicio=new Date().getTime();
    var 
i=0;
    while(
i<1000){
        
i++;
        
t('log').innerHTML+='<br />'+i;
    }
    var 
fin=new Date().getTime();
    
t('log').innerHTML+='<br />'+(fin-inicio)+' milisegundos';
    
}
onload=aMedir;
</script>
</head>

<body>
<div id="log"></div>
</body>
</html> 
  #9 (permalink)  
Antiguo 17/04/2009, 14:50
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: consejo para salir de una funcion

ok gracias Panino5001!!
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 17:17.