entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Carga dinamica entre paginas

La pregunta es:

Tengo un sitio web normal, con enlaces entre paginas, como puedo hacer para que el sitio se carga con ajax, sin hacer una carga intervencion completa de la arquitectura del sitio web,

me imagino algo asi como, que todos los enlaces internos llamen a una funcion para que carge el sitio web de manera dinamica, con su correspondiente preload, etc.

Gracias

3 Respuestas

0voto

elias_leyton Puntos2260

Creo que mas alla de la viabilidad de usar o no una tecnologia, prefiero saber como funcoina, y como se implementa, para luego tener mi propio juicio.

Aqui la respuesta a mi pregunta anterior,

http://moz.com/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate

0voto

Leonardo-Tadei comentado

Estamos de acuerdo Elias, por eso te anticipaba los inconvenientes a la vez que te daba las pautas para hacer lo que querés.

Fijate que el ejemplo de código hace exactamente lo que te describo: interceptar los click de los A, cargar el contenido y le agrega vía pushState la actualización de URI en la barra de navegación. También, como te decía, usa el HREF del A para saber qué contenido se debe cargar.

Luego de tu experiencia, contamos por acá cómo te resultó!

4votos

Leonardo-Tadei Puntos226990

Hola Elias,

no hagas eso! De esa forma tendrías todas las desventajas de los FRAME, que no solo se dejaron de usar, sino que desaparecieron del standard HTML, sino que además complejizarías mucho el código, impedirías que se pueda poner un marcador a una página, desaprovecharías la caché del navegador, tendrías que implementar algún indicador de "cargando", las sesiones se vuelven más complejas de manejar y un sin fin de desventajas más.

AJAX está muy bueno para actualizar una pequeña porción de una página, cuando el contenido es referente al de la página contenedora... para otros usos, hay que pensarlo dos veces, para reemplazar el flujo habitual de la navegación de un sitio tiene a mi criterio (y al del Tim O'Reily) muy poco sentido.

Saludos!

PD: si a pesar de todo esto querés hacerlo, con JavaScript empezá deshabilitando el comportamiento por default de los A, luego creá un manejador del evento click que derive a una función tuya, por último en esa función, analizá cuál A es el llamador y cargá asincrónicamente en el contenedor correspondiente el nuevo contenido (podrías basarte en el valor el HREF).
Mientras dura la llamada, poné algún "cargando" para que el usuario no crea que no pasa nada, porque el navegador no mostrará actividad.

0voto

elias_leyton comentado

Amigo puede que con este ejemplo se entienda mejor,

http://pitchfork.com/

0voto

Leonardo-Tadei comentado

Hola Elías,

había entendido perfecto tu plateo: resulta que ya me tocó corregir dos o tres tesinas de pregrado que estaban construidas de esta manera: todas resultaron ser de calidad pobre, con pequeños fallos hijos de la complejidad del tema y en todas el autor dijo con unas u otras palabras que hizo así el sitio web porque le había encantado la idea de AJAX pero que el grado de complegidad y la performance del sitio lo hacían inviable.

Saludos cordiales

1voto

Chiro300 Puntos750

Saludos.

Vi el link de la pagina que nos mandaste de ejemplo, realmente no es necesario que hagas una pagina con tantas llamadas AJAX como dice nuestro compañero @Leonardo-Tadei, no tiene sentido que cada botón del menú de navegación tenga una llamada AJAX, si tu realmente quieres hacer algo así primero debes pensar si realmente es necesario y si vale la pena, te tomara un tiempo hacer los cambios.

Ahora a mi punto de vista, yo veo necesario una pagina con tantas llamadas AJAX cuando quieres simular un software de escritorio, hacer una aplicación totalmente dinámica en la web, pero si solo es un sitio web común no es necesario y agotaras mucho tiempo creando las llamadas AJAX.

0voto

Leonardo-Tadei comentado

y aun para simular un entorno de escritorio, me lo pensaría 3 veces... está bueno cargar por ejemplo un formulario de ABM vía AJAX en la pantalla en dónde se muestren, por ejemplo, los clientes, pero me parece un abuso que la miama página, vía AJAX, muestre Clientes o Productos.

A mi en lo personal, el ejemplo que cita Eliás me consume muchísimos rescursos del navegador. Suelo tenér 2 o 3 ventanas cada uno con entre 3 y 15 solapas abiertas. Mi equipo es razonablemente potente, pero así y todo se pone el cambio de solapas y el rendering muy lento, tanto en FF 31 como en Google Chrome.

Otro punto en contra que menciona el artículo que nos envía Elías es el SEO: los robots de los buscadores no usan JavaScript y por tanto no peuden seguir los enlaces.

Saludos!

0voto

Chiro300 comentado

claro seria en casos muy concretos, lo ideal seria saber jugar con las llamadas AJAX y con los postback de la aplicación web y conseguir un buen equilibrio, actualmente e visto muchas aplicaciones web que simulan un programa de escritorio, una fue la creación de diagramas UML y era todo jquery y html, realmente se me hace un pasada ese tipo de paginas, pero como digo son para casos muy específicos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta