2011-08-18 5 views
1

Un outil basé sur le Web est basé sur un modèle, rendant le HTML et le servant une page à la fois. J'ai expérimenté en utilisant des outils plus modernes tels que ajax pour charger le contenu de la page, purement ce qui change entre les pages.AJAX - Mettre à jour le contenu div - Revenir en arrière?

Un problème que j'ai découvert dans le test est que si je un lien de retour (qui appelle JavaScript:history.go(-1);) comme avec l'outil actuel, il ne fonctionne pas. Dans notre système précédent, de tels liens vous amènent à la page précédente (là où elle existait).

Dans le système de test, je suis en train de mettre à jour le contenu div en utilisant jQuerys ajax.

Quelqu'un a-t-il une stratégie pour contourner ce problème avec du contenu dynamique, en fournissant un lien qui vous ramène à une étape d'une hiérarchie?

+0

Vous pouvez utiliser les hashtags url (fragments) –

+0

Ce genre de hashtag? http://en.wikipedia.org/wiki/Tag_%28metadata%29#Hashtags Si oui, je ne vois pas comment cela peut aider dans cette situation – martok

+0

va tester certains des plugins mentionnés ici: http: // stackoverflow. com/questions/116446/quoi-est-le-meilleur-back-button-jquery-plugin – martok

Répondre

1

J'ai eu du mal à ce problème à plusieurs reprises, il y a toutes sortes de solutions qui recommandent l'histoire manipulation du navigateur et l'interception de retour clics à partir du navigateur, etc.

Le court il est que vous utilisez des paramètres de la page pour contrôler le contenu rendu sur une page, cependant changer les valeurs de la barre d'adresse rechargera la page, alors comment cela fonctionne-t-il? Simple, vous pouvez changer n'importe quelle valeur après un # et le navigateur ne rechargera pas la page. Ensuite, votre javascript lit simplement la valeur après le # pour déterminer le contenu de la page. Here is a good article on it..

Je me demandais comment Gmail l'a fait et en analysant leur page, il semble qu'ils utilisent beaucoup de iframe s. L'avantage des iframes est qu'ils peuvent donner à votre site un aspect ajax sans vraiment être comme tel et je crois que revenir sur un navigateur revient simplement sur l'iframe. Cela fait un moment que j'ai fait quelque chose comme ça, donc je ne peux pas être sûr à 100%.

J'espère que cela aide. Aucune personne ici ne sera en mesure de vous fournir une solution de travail à 100% (au meilleur de ma connaissance) la nature des applications ajax est telle que la solution doit également être personnalisée.

0

Le lien de retour ne fonctionnera pas parce que vous ne chargez pas la page entière (l'URL ne change pas), mais c'est évident. Essayez d'enregistrer l'historique de l'utilisateur dans un cookie javascript, puis de charger la page listée ci-dessus. De cette façon, cliquer sur "retour" ne permettrait pas non plus de revenir à une page externe qu'ils ont parcourue auparavant, ce que fait javascript: history.back().

Questions connexes