Question

J'ai des raisons légitimes de le faire ce que je suis en train d'expliquer. J'ai un site existant dire abc.com qui a des pages régulières, etc. de tout écrit en php. Maintenant, je voudrais AJAXify le site à savoir lorsqu'un utilisateur clique sur un lien, il doit chercher le lien en utilisant AJAX et remplacer le contenu de la page. Ceci est la partie facile et je peux le réaliser en utilisant jQuery obtenir la fonction.

Maintenant, le problème vient lorsque l'utilisateur signets la page. Je peux utiliser des balises de hachage pour indiquer si l'utilisateur est sur une autre page, mais au lieu d'utiliser le javascript pour chercher la nouvelle page à nouveau, est-il possible de récupérer directement en utilisant PHP lorsque la page est appelée.

Pouvez-vous s'il vous plaît me donner un aperçu sur la façon de réaliser ce qui précède. Cette fonctionnalité est similaire à ce qui a Facebook.

Merci pour votre temps.

Était-ce utile?

La solution

Il est un processus assez simple de (1) l'analyse syntaxique de hachage étiquette, et (2) Chargement du contenu via Ajax comme vous le feriez normalement.

Si vous chargez plus de contenu lorsque l'utilisateur clique sur la page, juste être sûr de toujours modifier correctement la balise de hachage pour refléter ce qui est sur la page.

Voilà un exemple rapide pour jouer avec. Cliquez sur le nom et notez la balise de hachage. Le Javascript semble pertinent comme ceci:

// 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);
      });

   }

}

Autres conseils

La réponse est non, vous ne pouvez pas obtenir la valeur du côté du serveur de hachage URL. Voir Comment obtenir Url Hash (#) du côté serveur .

Vous devez obtenir la valeur de hachage côté client et faire une demande supplémentaire.

jQuery L'histoire est mon choix préféré. Il se trouve ici: http://www.balupton.com/projects/jquery-history / Apporter un soutien croix du navigateur, la liaison à hash, la surcharge hash, tout le reste.

Il y a aussi une extension Ajax pour elle appelé jQuery Ajaxy, lui permettant de facilement mettre à jour votre page Web dans une bonne application Ajax sans avoir besoin de changements côté serveur et SEO restant et JS-adapté aux handicapés: http://www.balupton.com/projects/jquery-ajaxy/

Ceci est la solution choisie par ces sites comme http://wbhomes.com.au/ et http://www.balupton.com

Dans l'ensemble, ils sont à la fois bien documentés, pris en charge et riche en fonctionnalités. Ils ont également gagné une question de prime ici Comment afficher les requêtes Ajax dans l'URL?

Eh bien, vous pouvez utiliser l'un de ces outils ou rouler votre propre. Utilise window.location.hash ainsi que d'autres tours.

J'ai écrit un article récemment sur cette question précise. L'article est de style tutoriel. Utilisation de l'événement de changement de hachage, im montrant comment ajouter des paramètres à l'URL, qui peut déclencher des demandes ajax avec un nombre infini de paramètres, fonctionnant donc d'une manière assez échelonnable.

Vous trouverez plus d'informations ici à http : //andresgallo.com/2012/06/08/ajaxifying-the-web-the-easy-way/

La première partie porte comment répondre aux liens de hachage, tandis que la partie II couvre comment envoyer les données dans l'URL de hachage à une demande ajax donc vous permettant de faire à peu près tout ce que vous voulez sur les balises de hachage dans votre URL.

La meilleure façon de le faire est d'avoir un index.php qui charge toutes les autres pages sur la base des pièces d'URL après. Par exemple:

http://www.example.com/index.php/reports / employés / hoursWorked

Dans ce cas index.php fonctionnera, il peut voir ce qui est demandé est le nombre d'heures de travail est le rapport, et charger ce contenu. Le problème est, si index.php charge alors tout autre contenu après que l'utilisation d'AJAX, l'URL dans le navigateur ne changera jamais.

Une façon de contourner ce problème serait de mettre un « lien vers cette page » lien sur chaque page qui contient cette forme d'URL pour les utilisateurs de signet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top