Pregunta

Tengo razones legítimas para hacer lo que estoy tratando de explicar. Tengo un sitio existente decir abc.com que tiene páginas regulares etc. todo lo escrito en PHP. Ahora me gustaría AJAXify el sitio es decir, cuando un usuario hace clic en un vínculo, se debe descargar el enlace usando AJAX y reemplazar el contenido de la página. Esta es la parte más fácil y puedo lograrlo usando jQuery función de conseguir.

Ahora el problema viene cuando el usuario marca la página. Puedo usar etiquetas de hash para especificar si el usuario está en otra página, pero en lugar de utilizar javascript para buscar a la nueva página de nuevo, ¿es posible descargarse directamente usando PHP cuando la página se llama.

¿Me podría dar un esbozo sobre cómo lograr lo anterior. Esta funcionalidad es similar a lo que Facebook tiene.

Gracias por su tiempo.

¿Fue útil?

Solución

Es una manera bastante simple proceso de (1) Analizar el hachís, y (2) Cargando el contenido a través de Ajax como lo haría normalmente.

Si carga más contenido cuando el usuario hace clic en la página, sólo asegúrese de modificar siempre correctamente el hash tag para reflejar lo que hay en la página.

Aquí es un ejemplo rápido para jugar. Haga clic en un nombre y tenga en cuenta la etiqueta de hash. El Javascript relevante es el siguiente:

// Go straight to content if it's in the hash.
$(document).ready(function(){
   load_story_from_hash();
});

// Call this function whenever user clicks on a hash link
function set_hash(hash){
   window.location.hash = hash;
   load_story_from_hash()
}

// Actually load content based on the hash in the URL
function load_story_from_hash(){

   var hash = window.location.hash;
   hash = hash.replace(/^#/, '');

   if (hash) {

      $('#post_container').load(hash+'.html', {}, function(){
         $.scrollTo('#post_container', 1000);
      });

   }

}

Otros consejos

La respuesta es no, no se puede obtener el valor del lado del servidor URL hash. Ver Cómo obtener la URL hash (#) del lado del servidor .

Vas a tener que conseguir que el cliente del lado del valor hash y hacer una solicitud adicional.

Historia jQuery es mi opción preferida. Se puede encontrar aquí: http://www.balupton.com/projects/jquery-history / Proporcionar el apoyo del navegador cruz, uniéndose a los hashes, la sobrecarga de hashes, todo el resto.

Hay también una extensión Ajax para ello llama jQuery AJAXy, lo que le permite actualizar fácilmente su página web en una aplicación adecuada Ajax y sin necesidad de cambios del lado del servidor y la restante SEO y JS-minusválidos: http://www.balupton.com/projects/jquery-ajaxy/

Esta es la solución elegida por dichos sitios como http://wbhomes.com.au/ y http://www.balupton.com

En general, ambos están bien documentados, apoyados y rico en características. También han ganado una pregunta recompensas aquí Cómo mostrar las peticiones Ajax en la URL?

Bueno, puedes utilizar una de estas herramientas o hágalo usted mismo. Utiliza window.location.hash junto con otros trucos.

escribí un artículo recientemente sobre este tema exacto. El artículo es de estilo tutorial. Utilizando el evento de cambio de hash, im que muestra cómo agregar parámetros a la URL, lo que puede desencadenar peticiones ajax con número infinito de parámetros, por lo tanto, que funciona de una manera muy escalable.

Puede encontrar más información sobre él aquí en http : //andresgallo.com/2012/06/08/ajaxifying-the-web-the-easy-way/

Parte I se refiere a la forma de responder a los enlaces de hash, mientras que la segunda parte se explica cómo enviar los datos en la url de hash a una solicitud de ajax, por tanto, que le permite hacer casi cualquier cosa que usted desea fuera de las etiquetas de hash en su URL.

La mejor manera de hacer esto es tener un index.php que carga todas las demás páginas basadas en las partes URL después de ella. Por ejemplo:

http://www.example.com/index.php/reports / empleados / hoursWorked

En este caso se ejecutará index.php, se puede ver lo que está siendo solicitada es es que las horas trabajadas informe, y cargar el contenido. El problema es que si index.php continuación, carga el resto del contenido después de que el uso de AJAX, la dirección URL en el navegador no cambiará nunca.

Una forma de evitar este problema sería la de poner un "enlace a esta página" que aparece en cada página que contiene ese tipo de URL para los usuarios a marcador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top