Foros del Web » Programando para Internet » Jquery »

No entiendo este código en Ajax

Estas en el tema de No entiendo este código en Ajax en el foro de Jquery en Foros del Web. Hola compañeros. antes que nada queria desearles unas felices fiestas y un 2013 lleno de éxitos. Estoy desarrollando un proyecto en en el cual quiero ...
  #1 (permalink)  
Antiguo 30/12/2012, 17:10
 
Fecha de Ingreso: abril-2011
Mensajes: 67
Antigüedad: 13 años
Puntos: 6
No entiendo este código en Ajax

Hola compañeros.
antes que nada queria desearles unas felices fiestas y un 2013 lleno de éxitos.

Estoy desarrollando un proyecto en en el cual quiero agregar ajax, el Objeto history, para manipular el historial de los navegadores.

En fin quiero montar una aplicación en el cual los usuarios puedan navegar en toda la web sin tener que regargar ni una sóla página. esto sé hacerlo mas o menos con la ayuda de los manuales, el único problema con el cual me enfrento es que cuando cago el contenido solicitado con Ajax en el <div> que quiero no se que hacer para que se cambien las etiquetas <title>,<description><keywords>,etc...

Esta web, lo ha conseguido y este es el código que emplea me gustaria que alguien me ayude a entenderlo, por favor.

Código HTML:
<script>
// THIS IS WHERE THE MAGIC HAPPENS
$(function() {
	$('nav a').click(function(e) {
		$("#loading").show();
		href = $(this).attr("href");
		loadContent(href);		
		// HISTORY.PUSHSTATE
		history.pushState('', 'New URL: '+href, href);
		e.preventDefault();
	});
	
	// THIS EVENT MAKES SURE THAT THE BACK/FORWARD BUTTONS WORK AS WELL
	window.onpopstate = function(event) {
		$("#loading").show();
		console.log("pathname: "+location.pathname);
		loadContent(location.pathname);
	};
});

function loadContent(url){
	// USES JQUERY TO LOAD THE CONTENT
	$.getJSON("content.php", {cid: url, format: 'json'}, function(json) {
		// THIS LOOP PUTS ALL THE CONTENT INTO THE RIGHT PLACES
		$.each(json, function(key, value){
			$(key).html(value);
		});
		$("#loading").hide();
	});
			
	// THESE TWO LINES JUST MAKE SURE THAT THE NAV BAR REFLECTS THE CURRENT URL
	$('li').removeClass('current');
	$('a[href="'+url+'"]').parent().addClass('current');	
}
</script> 
  #2 (permalink)  
Antiguo 30/12/2012, 20:31
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: No entiendo este código en Ajax

Pero eso de poner los metatags y el title, es meramente visual, no tiene sentido si estas pensando en SEO. Viste el HTML generado, es el mismo en todo el sitio, solo carga el contenido con Ajax/Json y lo imprime.


PD: Como hacés eso? que cuando cago el contenido solicitado con Ajax...

Increible lo tuyo, voy a intentarlo!!

Por cierto esta bastante bueno el ejemplo voy a investigarlo.
Saludos.
__________________
Drupal Argentina

Última edición por NUCKLEAR; 30/12/2012 a las 20:44
  #3 (permalink)  
Antiguo 31/12/2012, 02:45
 
Fecha de Ingreso: abril-2011
Mensajes: 67
Antigüedad: 13 años
Puntos: 6
Respuesta: No entiendo este código en Ajax

Muchas Gracias por tu respuesta Nucklear, ... aver si sacas algo de este tema.... yo sigo en blanco
lo que más me importa es intentar aprovechar esta funcionalidad para el seo
  #4 (permalink)  
Antiguo 31/12/2012, 07:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No entiendo este código en Ajax

¿Cuál es la parte que no logras entender del código?

Lo que haces es justamente usar la API History de HTML5 para cambiar la URL del navegador sin recargar la página. Los metatags no se cambian, ya que no tiene sentido en el contexto de Ajax. Solo cambia el título de la página, el título del artículo y el artículo (especificándolo en una respuesta JSON enviada desde el servidor)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 31/12/2012, 08:24
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: No entiendo este código en Ajax

Cita:
Iniciado por KimboKim Ver Mensaje
lo que más me importa es intentar aprovechar esta funcionalidad para el seo
Como ya te han dicho, no tiene nada que ver con el SEO. Para el SEO tendrías que hacer que la web sea funcional aún cuando javascript esté desactivado, lo que conseguirías añadiendo en el href del enlace una URL que sea funcional —y evitas que funcione cuando está javascript activado usando javascript con ese preventDefault.

Lo del historial y la URL visible es sólo para el navegador. Como te han dicho, algo casi meramente visual.

NUCKLEAR cuando intentes hacer eso, recuerda usar la impresora para usar el papel.
  #6 (permalink)  
Antiguo 31/12/2012, 11:31
 
Fecha de Ingreso: abril-2011
Mensajes: 67
Antigüedad: 13 años
Puntos: 6
Respuesta: No entiendo este código en Ajax

vale vale ahora ya me he aclarado, ya lo entiendo por completo.

muchas gracias por sus aclaraciones....

P.D. NUKLEAR, no suelo cagar el código, sino cargar.... jajajaja ha sido buena esa.
  #7 (permalink)  
Antiguo 29/04/2013, 03:20
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: No entiendo este código en Ajax

hola KimboKim,estube hechando un vistazo a esa página, habria manera de conseguir el archivo content.php???? me harias un gran favor.gracias

Etiquetas: ajax, html, js, php
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:05.