-
ZF et prototype.js
Salut à tous,
J'utilise le Zend Framework et me voici confronté à un problème en voulant faire de l'Ajax via Prototype.js.
J'utilise Ajax.Updater('Contenant','Url',{method:'get', parameters: Param});
Qui fait ce que je veux; il charge la page que je veux dans la partie désignée par 'Contenant' sans changer les autres parties de ma fenêtre.
Le problème est que l'url dans ma barre d'adresse ne change pas et je n'ai pas d'historique. Comment rémedier à celà car sans historique, ce que je fais est nul.
Je compte sur vous pour m'épauler.:(
Bye.
-
Salut
C'est tout l'intérêt d'AJAX : recharger des parties de la page sans impliquer l'historique du navigateur. Si tu veux que cet historique change, il te faut faire une redirection classique ou un lien tout à fait normal.
-
Merci pour le message,
J'aimerai savoir dans ce cas comment garder mon menu, contitué de liens appellant des Controlleurs différents, intact sans réaffichage. En effect, je veux que si je clique sur un lien de mon menu, que le navigateur affiche dans une zone de mon écran la page démandée sans que le menu ne soit réaffiché tout en ayant la barre d'adresse qui change (ce qui me permettra de faire des retours arrièrres).
Merci d'avance.
-
Je pense que tu cherches à faire des choses contre nature.
Tu cherches à modifier l'URL, mais pas tout le contenu de la page pointée par l'URL. Est-ce que tu comprends que ce n'est pas du tout un comportement standard et qu'il est donc possible qu'aucun navigateur ne l'accepte ? Tu t'exposes en tout cas à de très nombreux problèmes de compatibilité, en supposant que certains navigateurs le permettent...
-
Outil d'historique AJAX
Bonjour,
En fait, garder la navigation dans l'historique lorsque l'on veut utiliser le AJAX pour reproduire une navigation de type "frame", est en effet quelque chose d'important à penser. On peut voir la navigation avec AJAX un peut comme une navigation avec des ancres dans une même page et ainsi simuler l'enregistrement dans l'historique des navigateurs en changeant l'ancre de l'url lors du chargement d'un contenu via une requête AJAX. Voir ce composant pour un exemple d'implémentation:
http://www.prototypextensions.com/history
Par contre si tu base toute la navigation de ton site là dessus, sache que les visiteurs dont le javascript est désactivé, tout comme les moteurs de recherche ne pourront jamais accéder au contenu chargé par ta requête AJAX, donc ton site au complet sera invisible ! Il est préférable d'utiliser des techniques plus standard et de recharger la page au complet. Les systèmes de caching des navigateurs sont assez performants pour éviter une latence trop grande lors du chargement des pages, d'après moi. Mais cela dépend de tes besoins. Si le référencement de ton site n'est pas important et si tu es sur que tous tes utilisateurs ont le javascript activé, c'est une bonne solution.