2009-03-18 6 views
8

Je cherche un framework d'historique javascript pour gérer la navigation dans une page lorsque l'utilisateur sélectionne plusieurs options qui changent le comportement de la page.Expériences avec les cadres d'historique Javascript

Plusieurs artefacts sur la page modifient le chargement des données de la page et j'aimerais les stocker sous la forme d'un ensemble de comportements empilés. Dans un sens plus large, j'aimerais ajouter ceci comme une boîte à outils pour mes futurs projets web pour les mêmes raisons.

J'écris principalement en ASP.NET avec JQuery mais je ne m'inquiète vraiment que pour JQuery pour l'instant. J'écris d'autres projets en PHP, Python et Perl (en fonction du concert), donc ça devrait être agnostique pour la plateforme.

J'ai regardé sur le net et en ai trouvé quelques-uns mais un seul (couvert sur OReilly) avait l'air de faire l'affaire. J'ai commencé à jouer avec, mais je voulais savoir quels outils utilisaient les autres et ce que les autres recommanderaient. Donc, si vous avez une expérience des cadres de l'histoire, la manipulation du bouton de retour (etc) dans Ajax j'aimerais entendre parler de ce que vous avez utilisé et comment cela a fonctionné. Cela m'aiderait vraiment à faire un choix final sur la bibliothèque.

Merci,

S

Répondre

4

J'ai eu le même problème il y a quelques temps en construisant un site flash uniquement. Nous avons essayé:

  • Really Simple History (qui a eu quelques problèmes en combinaison de safari et flash)
  • ExtJS qui a un history component qui fonctionnait très bien pour nous. (Demo) [À côté de nous avons déjà utilisé ce cadre pour d'autres projets.]
1

Peut-être this question est utile pour vous. Dans la question que j'ai liée à une page de test, où location.hash est utilisé pour garder une trace de l'historique. J'utilise actuellement cette méthode dans un test et des problèmes expérimentés avec Opera (tronque une valeur location.hash au point d'interrogation, vous devrez utiliser: location.href.split(/#/)[1]) et bien sûr IE (nécessite un iframe). Dans IE avec iframe, l'historique est enregistré uniquement pour la session en cours. Si vous chargez une autre page dans la même fenêtre/onglet et utilisez le bouton Précédent pour revenir à la page AJAX, l'historique précédent est perdu. Ce n'est pas un gros problème pour moi, mais ça peut être agaçant. J'ai compris que l'historique d'IE8 devrait se comporter comme prévu avec location.hash, il devrait même avoir un gestionnaire hashchange.

Je pense que la plupart des frameworks utilisent la même technique (en surveillant location.hash pour les changements, en utilisant un iframe pour IE). Je ne voulais pas utiliser un cadre, parce que j'utilise mon propre cadre de brassage maison et que les cadres réguliers contiennent trop de fonctionnalités que je n'utiliserai jamais.

1

jQuery L'histoire est mon choix préféré. Il peut être trouvé ici: http://www.balupton.com/projects/jquery-history/ Fournir un soutien cross-browser, la liaison aux hachages, les hachages de surcharge, 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 SEO et JS-Accès pour handicapés changements côté serveur et restant: http://www.balupton.com/projects/jquery-ajaxy/

Dans l'ensemble, ils sont tous deux bien documentés, soutenus et riches en fonctionnalités.Ils ont également gagné une question de prime ici How to show Ajax requests in URL?

0

Dial.js est un cadre historique du navigateur JavaScript conçu pour fournir quelques-unes des caractéristiques d'un framework MVC à part entière avec jQuery et History.js pour les applications d'une seule page (ZSP).