Foros del Web » Programando para Internet » Javascript »

reload y redireccion con ancla?

Estas en el tema de reload y redireccion con ancla? en el foro de Javascript en Foros del Web. hola gente tengo la siguiente funcion: Código: <SCRIPT LANGUAGE="JavaScript"> <!--recargar cada X tiempo--> function aReload() { location.reload(true); } function startReload() { setTimeout("aReload()", 60000); } </script> ...
  #1 (permalink)  
Antiguo 11/05/2011, 19:53
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Pregunta reload y redireccion con ancla?

hola gente tengo la siguiente funcion:

Código:
<SCRIPT LANGUAGE="JavaScript">
<!--recargar cada X tiempo-->
function aReload() {
location.reload(true);
}
function startReload() {
setTimeout("aReload()", 60000);
}
</script>
a la cual lo que le quiero hacer es un redirect a un ancla que tengo en la misma pagina que esta situada abajo de todo.

Como puedo hacerlo
el ancla se llama coment y lo habia puesto con
Código:
<a name="coments">&nbsp;</a>

haciendo que quedara de esta manera:
Código HTML:
<SCRIPT LANGUAGE="JavaScript">
<!--recargar cada X tiempo-->
function aReload() {
location.reload(true);
}
function startReload() {
setTimeout("aReload()", 60000);
}

<!--refrescamos y enviamos hasta el punto-->
function newComent() {
    setTimeout("location.href='index.php#coments'", 0000);
  }
</script>
<body onLoad="newComent();"><a href="" name="coments">&nbsp;</a></body> 
pero evidentemente me refresca la pagina pero no me lo envia a dnd esta situado el ancla :( alguien sabe algo al respecto? que estoy haciendo mal

Última edición por alette666; 11/05/2011 a las 19:59
  #2 (permalink)  
Antiguo 12/05/2011, 05:45
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

prueba con el método scrollIntoView()
  #3 (permalink)  
Antiguo 12/05/2011, 06:18
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

A modo de aclaración, el uso de setTimeout/setInterval con strings es una práctica a evitar siempre que sea posible.

Código Javascript:
Ver original
  1. // Forma incorrecta
  2. setTimeout('aReload()', 60000);
  3.  
  4. // Forma correcta
  5. setTimeout(aReload, 60000);
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 12/05/2011, 07:08
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por Aijoona Ver Mensaje
A modo de aclaración, el uso de setTimeout/setInterval con strings es una práctica a evitar siempre que sea posible.

Código Javascript:
Ver original
  1. // Forma incorrecta
  2. setTimeout('aReload()', 60000);
  3.  
  4. // Forma correcta
  5. setTimeout(aReload, 60000);
no sé, es la primera noticia que tengo de ello. puedes aportar algo de documentación??
  #5 (permalink)  
Antiguo 12/05/2011, 07:25
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

En primer lugar te diria que no uses la documentación de la w3c ya que es sumamente incompleta y sutilmente erronea (como este caso en particular). Usa la de Mozilla (MDN) que le estan metiendo muchas ganas.

Luego, al pasar un string estás obligando al intérprete a realizar un eval, (lo cual es práctica poco recomendable tambien) lo que implica un costo de performance adicional entre otras cosas.

A modo de resumen, la sentencia eval es considerada mala práctica ya que atenta contra la performance (permite tener dynamic scope cuando js es lexical scoped) y seguridad (puede modificar variables del entorno).

En google vas a encontra mucha más información al respecto.
__________________
blog | @aijoona
  #6 (permalink)  
Antiguo 12/05/2011, 07:42
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

Cita:
code in the alternate syntax, is a string of code you want to be executed repeatedly. (Using this syntax is not recommended for the same reasons as using eval())
  #7 (permalink)  
Antiguo 12/05/2011, 07:52
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

Redundancia, para dejarlo claro:


Código Javascript:
Ver original
  1. function createClousure() {
  2.     var a, b, c;
  3.    
  4.     a = 1;
  5.     b = 'Hello';
  6.     c = [1, 2, 3];
  7.    
  8.     return function(q) {
  9.         console.log(eval(q));
  10.     }
  11. }
  12.  
  13. var view = createClousure();
  14.  
  15. // El eval tiene acceso a variables del clousure
  16. // de forma dinamica, lo cual evita optimizaciones
  17. // al respecto y es sumamente inseguro
  18. view('a'); // 1
  19. view('b'); // "hello"
  20. view('c'); // [1, 2, 3]
__________________
blog | @aijoona
  #8 (permalink)  
Antiguo 12/05/2011, 08:45
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: reload y redireccion con ancla?

Hola Aijoona,
Quisiera saber cómo es que funcióna
Código Javascript:
Ver original
  1. return function(q) {
  2.         console.log(eval(q));
  3.     }
Y esque sólo me retorna undefined.
Saludos.
  #9 (permalink)  
Antiguo 12/05/2011, 08:56
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

Si no estas muy interiorizado en el tema de clousures probablemente resulte confuso.

Un clousure es un espacio cerrado al entorno, esto es, lo que definís dentro del clousure no tendrá visibilidad externa a menos que vos quieras, por ejemplo:

Código Javascript:
Ver original
  1. function createClousure() {
  2.     // Estas variables son "privadas", no pueden ser accedidas
  3.     // desde el exterior del closure, a menos que queramos
  4.     var a, b, c;
  5.    
  6.     a = 1;
  7.     b = 'hola';
  8.     c = [1,2,3];
  9.    
  10.     // Devolvemos un objeto que tiene visibilidad interna, basicamente
  11.     // "recuerda" el contexto en el cual fue definido
  12.     return {
  13.         getA: function() { return a },
  14.         getB: function() { return b },
  15.         getC: function() { return c }
  16.     }
  17. }


Al realizar un eval tenés visibilidad de todos las variables a las que puede acceder el contexto sobre el que está situado.

Si queres usar la function que realiza el eval por si sola no te va a resolver muchas dudas:

Código Javascript:
Ver original
  1. function wrappedEval(q) {
  2.     console.log(eval('typeof ' + q));
  3. }
  4.  
  5. wrappedEval('a'); // undefined
  6. wrappedEval('setTimeout'); // function
__________________
blog | @aijoona
  #10 (permalink)  
Antiguo 12/05/2011, 13:04
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

dos articulos interesantes para entender que son y el alcance de las closures
http://es.debugmodeon.com/articulo/c...t-iii-closures
https://developer.mozilla.org/en/Jav...Guide/Closures
  #11 (permalink)  
Antiguo 13/05/2011, 12:47
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por Aijoona Ver Mensaje
Si queres usar la function que realiza el eval por si sola no te va a resolver muchas dudas:
disculpen la ignorancia; pero que tiene que ver clausure con la redireccion con ancla???? creo que lo que entendi de "IsaBelM" es algun metodo mas (dificil) para mi?
  #12 (permalink)  
Antiguo 13/05/2011, 12:50
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

No tiene nada que ver, nos fuimos de topico. :p

Si te interesa aprender, podes leer los links que posteo IsabelM.
__________________
blog | @aijoona
  #13 (permalink)  
Antiguo 13/05/2011, 12:52
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

EDITO: **************Ni siquiera entendi lo de isabel :(
  #14 (permalink)  
Antiguo 13/05/2011, 12:54
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por Aijoona Ver Mensaje
No tiene nada que ver, nos fuimos de topico. :p

Si te interesa aprender, podes leer los links que posteo IsabelM.

Si los lei pero no encuentro lo que cnecesito :( funciones que no encuentro para unj simple reload y redireccion al ancla
  #15 (permalink)  
Antiguo 13/05/2011, 13:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por alette666 Ver Mensaje
Si los lei pero no encuentro lo que cnecesito :( funciones que no encuentro para unj simple reload y redireccion al ancla
a ver, no fuimos del tema. busca información sobre el método scrollIntoView(). con el puedes desplazarte a la posición de un elemento que tenga una id. un ejemplo
Cita:
document.getElementById('nombrediv').scrollIntoVie w(true);
  #16 (permalink)  
Antiguo 13/05/2011, 15:39
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
a ver, no fuimos del tema. busca información sobre el método scrollIntoView(). con el puedes desplazarte a la posición de un elemento que tenga una id. un ejemplo
OK gracias ya me pongo en campaña
  #17 (permalink)  
Antiguo 13/05/2011, 16:18
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
a ver, no fuimos del tema. busca información sobre el método scrollIntoView(). con el puedes desplazarte a la posición de un elemento que tenga una id. un ejemplo
mira me quedo asi:

Código HTML:
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--recargar cada X tiempo-->
function startReload() {
setTimeout("aReload()", 30000);
}
<!--y enviamos hasta el punto-->
function Nuevito () {
document.getElementById('nuevito').scrollIntoView(true);
}
</script>
</head>
<body onLoad="startReload();">
...
...
...
...
<div id="nuevito">
...
</body> 
ahora tengo que checar si hace lo que requiero, o tengo algo mal, tu me dices
  #18 (permalink)  
Antiguo 13/05/2011, 17:14
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

sí, has captado la idea. te corrijo alguna cosa

no le pases un string a setTimeout o setInterval
lo puedes hacer todo en una sola línea
Cita:
<script type="text/javascript">
setTimeout(function() {document.getElementById('nuevito').scrollIntoView (true);}, 30000);
}
</script>


<div id="nuevito">scroll</div>
  #19 (permalink)  
Antiguo 13/05/2011, 17:16
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
sí, has captado la idea. te corrijo alguna cosa

no le pases un string a setTimeout o setInterval
lo puedes hacer todo en una sola línea
OK intentare, ya que el anterior me refresco una sola vez y murio en el intento de volver a refrescar (tasmpoco me mostro el ancla)
  #20 (permalink)  
Antiguo 13/05/2011, 17:27
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
sí, has captado la idea. te corrijo alguna cosa

no le pases un string a setTimeout o setInterval
lo puedes hacer todo en una sola línea
evidentemente refresco 2 veces y se murio en el tercero

la funcion:

Código HTML:
<SCRIPT LANGUAGE="JavaScript">
<!--recargar cada X tiempo-->
setTimeout(function() {
	document.getElementById('coments').scrollIntoView (true);}, 5000);
</scripts>
...
...
...
<div id="coments">&nbsp;</div> 
me funcionó, pero no paso mas del segundo refresh miralo tu http://radiolive.netau.net/hash/lunanueva/request/
  #21 (permalink)  
Antiguo 13/05/2011, 17:34
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

a ver, entonces en vez de usar el temporizador setTimeout has de usar setInterval, si lo que quieres es que la página se recarge cada x tiempo en un bloque infinito

Cita:
setTimeout ------> sólo recarga la página una sola vez
setInterval -------> recarga la página infinita veces
  #22 (permalink)  
Antiguo 13/05/2011, 17:47
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
De acuerdo Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
a ver, entonces en vez de usar el temporizador setTimeout has de usar setInterval, si lo que quieres es que la página se recarge cada x tiempo en un bloque infinito
ieaaaaaa, gracias IsaBelaM salió a la perfeccion, van Karma AGUR!
  #23 (permalink)  
Antiguo 13/05/2011, 18:31
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

Para cosas que no requieran ESTRICTAMENTE ejecutarse cada un período dado, es mejor usar el pattern:

Código Javascript:
Ver original
  1. function repeat() {
  2.     // logica especifica
  3.  
  4.     // llamada recursiva
  5.     setTimeout(repeat, 5000);
  6. }
  7.  
  8. // Comenzamos
  9. repeat();

Ya que usando el setInterval el interprete va a intentar a toda costa respetar el intervalo en desmedro de trabajo más util además de posibilitar raras situaciones donde la ejecución se de cada menos del intervalo especificado.
__________________
blog | @aijoona
  #24 (permalink)  
Antiguo 13/05/2011, 18:37
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por Aijoona Ver Mensaje
Para cosas que no requieran ESTRICTAMENTE ejecutarse cada un período dado, es mejor usar el pattern:
aijoona, es que lo que me interesa a mi es que refresque y me lleve a un ancla dentro de la pagina (situada abajo de todo) para visualizar el mas reciente de las peticiones solo eso pedia, y IsaBelaM me ayudó en este dilemilla, xq lo que hacia yo en la pagina era solo refrescar, pero cuando ya se llenaba de comentarios la pagina el usuario (en este caso el DJ de turno a visualizar el pedido que le encomendaron), tenia que estar con la barrita de el navegador constantemente hacia abajo para visualizarlo.
Ahora esta un poco mas automatizado.
Pero igual tendre y probaré tu repuesta tmb

GRACIAS!!
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.
  #25 (permalink)  
Antiguo 13/05/2011, 18:39
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: reload y redireccion con ancla?

No posteo como que esta incorrecta tu solución, sino para que incorpores nuevos conocimientos.

:p
__________________
blog | @aijoona
  #26 (permalink)  
Antiguo 02/06/2011, 20:25
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
a ver, entonces en vez de usar el temporizador setTimeout has de usar setInterval, si lo que quieres es que la página se recarge cada x tiempo en un bloque infinito
IsaBelM hice todo tal como me dijiste pero recien hoy me di cuenta de un gran ERROR en la pagina, es decir que no refresca sino que redirecciona nada mas, o sea que cuando van cayendo las solicitudes nuevas no las muestra, y resulta que cuando hago refresh la pagina me muestra mas de 7 peticiones nuevas que no habia leido, es decir que posiciona al ultimo comentario pero no refresca la pagina.

Puse tal cual me dijiste:

Código:
<SCRIPT LANGUAGE="JavaScript">
<!--recargar cada X tiempo-->
//setInterval(function() {
//	document.getElementById('coments').scrollIntoView (true);}, 30000);
</script>
Yo necesito que refresque toda la pagina y que me posisione al ultimo comentario, se entiende??

GRACIAS!!
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.
  #27 (permalink)  
Antiguo 03/06/2011, 06:55
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: reload y redireccion con ancla?

la verdad es que se me ha hecho larga lectura, así que es esto que te voy a decir, lo digo con alguna reserva.
usa el meta refresh

ahora usa este script
Cita:
window.onload = function() {document.getElementById('coments').scrollIntoView (true);}
  #28 (permalink)  
Antiguo 06/06/2011, 00:18
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: reload y redireccion con ancla?

Cita:
Iniciado por IsaBelM Ver Mensaje
la verdad es que se me ha hecho larga lectura, así que es esto que te voy a decir, lo digo con alguna reserva.
usa el meta refresh

ahora usa este script
E-X-C-E-L-E-N-T-E
gracias IsaBellM
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.

Etiquetas: anclaje, redirect, reload
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 01:00.