Comunidad de diseño web y desarrollo en internet online

que pasa con mi web??

Citar            
MensajeEscrito el 16 Nov 2011 02:56 pm
Hola tengo un comportamiento de lo mas raro en mi web. mirenlo ustedes mismos:

www.ocarestaurante.com/progreso/

y ahora pruebenlo asi:

www.ocarestaurante.com/progreso/#inicio

Agrandes rasgos la tematica de esta pagina es evitar el recargado de pagina. todo bien hasta aqui, pero cuando se accesa con www.ocarestaurante.com/progreso/ no responde la animacion de cambio de pagina ni nada, si notan hasta el favicon cambia. y cuando se accesa con www.ocarestaurante.com/progreso/#inicio se ve perfectamente todo lo que llevo hasta el momento.

Alguien tiene idea de que pasa?? o porque?? ya cheque en el script, donde tengo una variable que reviza la url, si encuentra un # entonces la separa, cad=http://dominio.com..etc y pagina=inicio,casa,equipo,etc..

En teoria me previne ante www.ocarestaurante.com/progreso/, con la misma instruccion que separa cad de pagina en un for, si no se encuentra ningun gato, cad y pagina son iguales
y al ejecutar cad=cad.substr(0,cad.length-pagina.length); cad queda nula
y asi la pongo en la comprovacion del if, if(pagina=="inicio" || cad==""){//Pagina inicio

Fuera de eso todo se basa en el clik a los botones, que cambian lo escrito en la url con <a href="#pagina"> y los menu internos con document.location.hash=la pagina;

Que esta mal entonces??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 16 Nov 2011 03:24 pm
Como solución rápida, podrías probar a asignarle el hash "inicio" al iniciar la aplicación. Lo lograrías añadiendo a tu código JS la siguiente línea:

Código Javascript :

$(document).ready(function() {
    $(function (){
       window.location.hash = "inicio";
    });
});


Es posible que así te funcione.
La solución lenta, aprende a utilizar jQuery y su nomenclatura, no sólo sus funciones y efectos. Para esta web, yo utilizaría el plug-in "history", que te permitirá navegar hacia atrás y hacia delante utilizando los propios botones del navegador, y te ayudará a aclarar un poco que script se ejecutan al entrar la primera vez, y cuales cada vez que cambias de página.

Por lgruz

10 de clabLevel



 

safari
Citar            
MensajeEscrito el 16 Nov 2011 03:27 pm
Si me permites un consejo, no utilices Internet Explorer. Conseguirás una mejor experiencia utilizando las últimas versiones de Firefox o Chrome, así como con sus complementos para desarrollar, como FireBug para Firefox, o la herramienta de desarrollador de serie en Chrome.

Por lgruz

10 de clabLevel



 

safari
Citar            
MensajeEscrito el 16 Nov 2011 03:59 pm
Gracias por los consejos, primero antes que nada, el plugin history recarga navegador cuando cambias entre uno y otro ??

Y es curioso, pero ya coloque algo similar, tu codigo textual no podia utilizarlo por cuestiones de acceso a url, si alguen accesaba con otra pagina esta se cambiaria a inicio por defecto.

lo prove asi:
if(cad==""){window.location.hash = "inicio"} pero no funciono

Nota esto esta dentro del $(document).ready(function() {});

Alguna otra sujerencia del porque pasa esto??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 16 Nov 2011 05:09 pm
Estas teniendo todos los problemas que se tienen al realizar por primera vez una página navegable con AJAX :P

El plugin History, efectivamente, es para este tipo de sitio. Con AJAX puro, si navegas por tu web y decides volver a la página anterior, no hará nada, se quedará donde está. Con history volvería al anterior. Y lo mejor es que te facilita todos estos temas, como qué debe ocurrir cuando se entra por primera vez, si cargar la página de inicio o cargar la incluida en el hash.

La idea es que te ayudes sólo del hash para saber donde te encuentras. Es decir, cuando el usuario entra por primera vez, deberás recoger el hash. Si este no existe, le estableces como hash inicio, y si está establecido, cargas la página referente a ese hash.

Con history, seria de la siguiente forma:

Código Javascript :

$(document).ready(function (){

        // Esta función es la que deberás llamar cada vez que cambies de página
   $.history.init(function(hash){
      // Se evitan errores en caso de acceder recursivamente
      if (hash == "") {
         hash = "inicio";
         window.location.hash = hash;
      }
          
                // Ajax que cargaría el contenido del hash. En tu caso sería "carga_conten(hash...
         },
         { unescape: true });

         // Para llamar a esta función, yo he hecho que todos los enlaces la llamen. Esto es opcional y deberás controlar que los enlaces externos no los tome como internos.
         $("a").live('click', function() {
      destino = $(this).attr("href"); // Aquí recojo el href del enlace. Este href lo recibirá la función de arriba como el parámetro "hash". 
      $.history.load(destino);
      return false;
          });

});


Como puedes comprobar, lo que haces con history es similar a lo que haces actualmente, sólo que mejor organizado y te almacena el historial.

Por lgruz

10 de clabLevel



 

safari
Citar            
MensajeEscrito el 16 Nov 2011 05:55 pm
oooook, deja lo intento con history y en unos minutos te comento que tal me fue, lo unico que me sorprende es el comportamiento extraño cuando entras cun una u otra URL de las que coloque antes.

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 16 Nov 2011 09:56 pm
Hola de lo que me diste solo coloque:

Código :

   $.history.init(function(hash){
      // Se evitan errores en caso de acceder recursivamente
      if (hash == "") {
         hash = "inicio";
         window.location.hash = hash;
      }
          
                // Ajax que cargaría el contenido del hash. En tu caso sería "carga_conten(hash...
         },
         { unescape: true });



Y ya funciona, mi web. Lodemas no me anime a meterlo porque no lo entiendo muy bien.

Pero si me interesaria, que me funcione la navegacion en la web, me podrias ayudar??
Mi sitio tiene poco si no es que casi nada dinamico, en si la mayor parte de las paginas, son un solo div estirado, que se recorre, a cierta posicion segun la url.
Mi duda es:

Para que quede la navegacion basta con colocarle:

$.history.load(destino);

y en destino colocar mi pagina o algo asi?? es solo que hice unas pruebas pero no me quedo

Por lo demas mil gracias.

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 17 Nov 2011 07:39 am
Efectivamente, con el código que colocaste te sobra para hacerlo funcionar. Ahora, lo que tendrías que hacer es llamar a esta función cada vez que quieras cambiar de página, a través de la función "$.history.load(hash)". En "hash" deberás establecer la variable que recibirás como "hash" en la función $.history.init.

Por ello, yo realice una función que facilitara esta tarea para que no tuviera que llamar a $.history.load en cada enlace de la web. Realicé lo siguiente:

Código Javascript :

$("a").live("click", function() { // Con esta función controlo cuando se hace click en las etiquetas "a", es decir, los enlaces. También puedes usar $("div#menu_principal a"), de forma que sólo controle cuando clickas en los elementos del menú. El resto los tomará como enlaces normales.
    destino = $(this).attr("href"); // Aquí recojo el atributo "href" del enlace. En tu caso sería "inicio", "casa"...

    $.history.load(destino); // Y por último, llamamos a la función history para que cargue la página contenida en destino, a través de lo que hayas dispuesto en $.history.init
});


Espero que más o menos hayas entendido el código. Es simplemente ayudarte de jQuery para cumplir un objetivo.

Por lo demás no veo nada fuera de lo normal a simple vista. El efecto de "div estirado" como comentas queda bastante bien, y si funciona sobra todo lo demás.

Si tienes un problema con algunos plugin de jQuery. La web intenta cargar algunos ficheros como "jquery.ui.dialog.js" sin éxito, lo que provoca que se ralentice un poco. También da un fallo en Google Maps.

Por lgruz

10 de clabLevel



 

safari
Citar            
MensajeEscrito el 18 Nov 2011 02:48 pm
wuaww gracias lo checare, luego les cuento que pasa, y corregire esas fallas

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie

 

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