Comunidad de diseño web y desarrollo en internet online

Como puedo evitar que se guarde historial?

Citar            
MensajeEscrito el 07 Feb 2013 04:02 pm
Bien he aqui la pregunta, como hago para que una serie de paginas enlazadas por link sea unidireccional, es decir no se vuelva atras?

El porque, es porque estoy haciendo una linea de tests con tiempo para usuarios, la idea es que pasado ese tiempo salte a la siguiente pregunta si contesta pasa a la siguiente pregunta, si se pasa el tiempo salta a la siguiente y asi una cadena.

el caso es que la cadena de preguntas respuestas debe ser unidireccional por lo que si hay historial i tiro hacia atras no me va a servir de mucho el test.

Como tengo organizado la creacion de estas paginas :

Supongamos que inicio el proceso desde
test1.html (10 segundos para contestar i cuatro botones, aki hay cinco opciones
-->si finaliza el tiempo -->envio a nucleo.php variable valor0
-->si apreto boton 1 -->envio a nucleo.php variable valor1
-->si apreto boton 2 -->envio a nucleo.php variable valor2
-->si apreto boton 3 -->envio a nucleo.php variable valor3
-->si apreto boton 4 -->envio a nucleo.php variable valor4
)
nucleo.php hace lo siguiente:
-->coje valor enviado
-->guarda resultado
-->crea test2.html
-->abre test2.html
-->borra test1.html
Por lo que si borro historial i quiero ir a localhost/test1.html logicamente no encuentra nada
en caso de no borrar el historial si le doy a -->''''pagina anterior'''' logicamente se me vera aunque test1.html no exista en el servidor(es esto lo que quiero evitar).

Soluciones que he pensado i no se si es que se puede hacer:

opcion1->crear un contador desde php que cada vez que se ejecute test1.html o test2.html o test3.html me compruebe donde realmente estoy si en test1 o test2 o test3 .La idea es que si estoy en test3 y le doy a pagina anterior, que cuando ejecute test2.html mire en el servidor que verifique el contador i me diga que estaba en test3 y en cuando vaya a test2.html me reenvie a una pagina de error en el test


opcion2->reemplazar (cuando voy a test2.html viniendo de test1.html) en el historial test2.html por test1.html



opcion3->pasarlo todo por php


que estrategia debo seguir, teniendo en cuenta que la opcion 3 ya se como hacerla i me gustaria encontrar otra manera de proceder

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Feb 2013 04:32 pm
De una ves: No puedes modificar el comportamiento normal de un navegador. Si una característica básica de un navegador es un problema para ti, la solución no es tratar que el navegador se comporte como tú quieres.

Lo que yo haría en tu caso es usar una cookie que almacene la última página mostrada y en caso que el usuario vuelva atrás, redireccionarlo a esa última página.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 Feb 2013 05:55 pm
Eso como se hace lo de la cockie, me han dicho en otros foros que con history.replaceState se puede hacer algo pero lo unico que consegui es hacer que no me varie la url aunque el codigo cambie

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Feb 2013 06:18 pm
Ya encontre la solucion solo tengo que utilizar en los botones i cuando pasan 10 segundos window.location.replace -> genial solucion

ahora a mirar el cache de firefox a ver que se puede hacer

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Feb 2013 06:53 pm
y para forzar que se ejecute desde el servidor y no el cache encotre que podemos poner

location.reload(true);

ahora voy a mirar si funciona

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Feb 2013 05:16 am
ok ya esta tengo que hacer que location.reload(true); se ejecute en algun evento eso me obligara a que haga cada vez que vaya a esa pagina tirara en servidor no en la cache ni en el historial del browser, creo que ya tengo la solucion, de momento tengo buena parte de lo que queria solucionado, gracias por contestar

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Feb 2013 09:18 am
Lo consegui finalmente encontre la manera de que pase por cache i ademas pasarlo todo en funciones javascript lo unico que no pude es con la etiqueta meta charset=utf-8 he aki mi investigacion y mi resultado final, gracias a todos a sido genial esta investigacion

Código :

<!DOCTYPE html><html id=zas><head id=cristalab><title>titulo head</title>
<meta charset='utf-8'>
<script>
function a(){
function objecte(i,t,p){
var n=document.createElement(t);
n.id=i;
var p=document.getElementById(p);
p.appendChild(n);
}
objecte('m1','meta','cristalab');
objecte('m2','meta','cristalab');
objecte('m3','meta','cristalab');
objecte('cos','body','zas');
document.getElementById("m1").httpEquiv='Expire';
document.getElementById("m1").content='0';
document.getElementById("m2").httpEquiv='cache-control';
document.getElementById("m2").content='no-cache';
document.getElementById("m3").httpEquiv='pragma';
document.getElementById("m3").content='no-cache';
/*...aki hay todo el codigo en funciones de maquetizacion css, DIVS, botones, eventos tiempo ......
*/
}window.onload=a;
</script></head ></html>


con esto y poniendo en los botones window.location.replace i el evento tiempo cuando vas al historial i ejecutas test1.html estando en test2.html no encuentra nada porque nucleo.php borro test1.html

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Feb 2013 01:01 pm
Tambien puedes cargar todo con ajax en una sola url...

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

safari
Citar            
MensajeEscrito el 08 Feb 2013 01:47 pm
ok de acuerdo, tengo que hojear un poco ajax, sabe alguien un buen tutorial de ajax, o videotutorial de ajax

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Feb 2013 02:24 pm
La funcion para que no se guarde en cache es:

Código :

<html><head id=cristalab><script>
function nocache2(i){
      function objecte(i,t,p){
            var n=document.createElement(t);
            n.id=i;
            var p=document.getElementById(p);
            p.appendChild(n);
      }
      var i=i;
      objecte('m1','meta',i);
      objecte('m2','meta',i);
      objecte('m3','meta',i);
      document.getElementById("m1").httpEquiv='Expire';
      document.getElementById("m1").content='0';
      document.getElementById("m2").httpEquiv='cache-control';
      document.getElementById("m2").content='no-cache';
      document.getElementById("m3").httpEquiv='pragma';
      document.getElementById("m3").content='no-cache';
}
nocache2('cristalab');
</script>
</head></html>

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.