Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/02/2011, 13:43
cosobo
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Problema con el paginador PHP cuando doy F5

Cita:
Iniciado por Deathmetalrules Ver Mensaje
bueno yo lo reviso si no lo entiendo te escribo muchas gracias por coolaborarme
con lo del hash
---------------------------------------
lo e probado y te corrijo esto,
-> pp2.php queda igual
-> pp.php seria asi
Código HTML:
Ver original
  1. <script type="text/javascript" src="pp.js"></script>
  2. <script type="text/javascript">
  3. function iniciar() {/*inicia el proseso*/cargaPagina(window.location.hash);}
  4. function cargaPagina(hash) {
  5.     errorDeTiempo = setTimeout("declaraError('contendioPerfil')", esperaMax);  
  6.     hashDefecto = hash;
  7.     hash = hash.replace(/^\#/, ""); // limpia el hash quita el # par colocar despues el ?
  8.     if(hash.length > 0) hash = hash;
  9.     cargaContenido("pp2.php",hash,muestrame,'GET','rex');// llama a la funcion ajax para enviar al php
  10. }
  11. function muestrame() {
  12.     var pagina=document.getElementById('contendioPerfil');
  13.     if (peticion_http.readyState == 4) {       
  14.         if(peticion_http.status==200) {clearTimeout(errorDeTiempo);
  15.             tiempoPagina = setTimeout("comprobarHash()", espera);
  16.             pagina.innerHTML = peticion_http.responseText;
  17.         } else if(peticion_http.status==404){pagina.innerHTML = '<div class="avis carga">La pagina no existe</div>';
  18.         } else {preloader.innerHTML = '<div class="avis carga">Error > fatal: por favor avisar al administrador</div>';}           
  19.     } else {
  20.         pagina.innerHTML = '<div class="avis carga">Cargando la pagina...</div>';
  21.     }
  22. }
  23. </head>
  24. <div id="error" style="display:none">
  25.         Paso un error
  26. </div>
  27. <div id="avisos">
  28.     <h1>No esta ativado el js</h1>
  29. </div>
  30.  
  31. <ul class="menuPerfil">
  32.     <li><a href="#p=citas">Citas</a></li>
  33.     <li><a href="#p=amigos">Mis referidos </a></li>
  34.     <li><a href="#p=ofertasMias">Ofertas </a></li>
  35.     <li><a href="#p=este es un contedino muy largo">este es un contedino muy largo</a></li>
  36. </ul>
  37.                                      
  38. <div id="contendioPerfil" class="ctnPerfil">                                      
  39. </div>
  40. <!----------------->
  41. <script type="text/javascript">
  42.     document.getElementById('error').style.display='none';
  43.     document.getElementById('avisos').style.display='none';
  44.     window.onload = iniciar();
  45. </body>
  46. </html>

-> pp.js quedaría asi :
Código Javascript:
Ver original
  1. // definimos estandares
  2.     var peticion_http = null;
  3.     var hashDefecto = null;
  4.     var errorDeTiempo = null;
  5.     var tiempoPagina = null;   
  6.     var esperaMax = 12000;
  7.     var espera = 800;
  8. // funciones ajax
  9.     // creamos objeto
  10.         function inicializa_xhr() {
  11.           if(window.XMLHttpRequest) {
  12.             return new XMLHttpRequest();
  13.           } else if(window.ActiveXObject) {
  14.             return new ActiveXObject("Microsoft.XMLHTTP");
  15.           }
  16.         }
  17.     // ajax
  18.     function cargaContenido(url,variables,funcion,metodo,ab) {
  19.       peticion_http = inicializa_xhr();
  20.       metodo = metodo || 'GET';
  21.       ab = ab || '';
  22.       if(peticion_http) {        
  23.         if (ab=='rex') {cuentraAtras = setTimeout("comprobarHash()", esperaMax);}      
  24.         if(metodo == 'POST'){
  25.             peticion_http.open('POST', url, true);
  26.             peticion_http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  27.             peticion_http.send(variables);
  28.         } else {
  29.             url = url+'?'+variables;
  30.             peticion_http.open('GET', url, true);
  31.             peticion_http.send(null);
  32.         }
  33.         peticion_http.onreadystatechange = funcion;
  34.       }
  35.     }
  36.     // error de espera a la carga  
  37.     function declaraError(contenedor) {
  38.         /* si a supera el tiempo de esperaMax se prosede este metodo*/ 
  39.         if(errorDeTiempo) {clearTimeout(errorDeTiempo);}
  40.         if(tiempoPagina) {clearTimeout(tiempoPagina);}
  41.         document.getElementById('avisos').style.display='none';
  42.         document.getElementById('error').style.display='';
  43.        
  44.         document.getElementById(contenedor).style.display='none';
  45.     }
  46.    
  47. // controles de tiempo y carga
  48.     function comprobarHash() {     
  49.         tiempoPagina = setTimeout("comprobarHash()", espera);  
  50.         if(hashDefecto == window.location.hash) return;
  51.         cargaPagina(window.location.hash);
  52.      }
  53.      
  54.     function abortar() {
  55.       // La cuentra atrás se ha cumplido, detener la petición HTTP pendiente
  56.       peticion_http.abort();
  57.       alert("Se ha producido un error en la comunicación con el servidor. Inténtalo un poco más adelante.");
  58.     }
  59.    
  60. //////////////////////////////////////