50 votes

Préféré côté client la solution de routage?

Je suis en train de concevoir une page, un navigateur basé sur le web application. JQuery est déjà utilisé dans mon application. Je suis actuellement à la planification de l'utilisation de KnockoutJS pour la liaison de données et l'INTERFACE utilisateur de gestion. Toutefois, j'ai utilisé Backbone.js dans le passé et j'ai été très impressionné par le service de routage et d'équipements fournis par la couche contrôleur. J'ai aussi regardé dans certains jquery based solution comme pathjs (https://github.com/mtrpcic/pathjs) pour le côté client de routage. Il serait génial si quelqu'un pouvait offrir des suggestions et des lignes directrices pour le choix d'un bon système de routage. Je ne suis pas prêt à utiliser Backbone.js au lieu de KnockoutJS en raison de l'excellente liaison de données des installations de knockoutjs. Toute aide serait appréciée.

34voto

lorefnon Points 2768

Après un peu d'exploration, j'ai trouvé la solution. @Eisenhauer épine Dorsale de routage installations sont impressionnantes, mais si je ne suis pas à l'aide de la colonne vertébrale. Comme je l'ai indiqué dans ma question, je suis déjà à l'aide de KnockoutJS que me fournit un modèle MVVM et donc ce n'est pas vraiment une bonne idée de mettre un supplémentaire MVC mise en œuvre dans la même page.

Pour les gens qui cherchent autonome solution de routage, si vous utilisez déjà jquery sur votre page, pathjs est une solution simple et élégante.

Plus flexible, puissant et autonome, la solution de routage est Crossroads.js disponible à http://millermedeiros.github.com/crossroads.js/. Il est très bien documenté et très puissant,il peut donc être adapté à n'importe quel ensemble d'exigences.

14voto

Spycho Points 2571

Vous pouvez utiliser l'API de l'Histoire plutôt qu'un hashbang approche?

  • Il vous permet de manipuler l'URL affichée à l'utilisateur.
  • Cela signifie que l'arrière / vers l'avant le travail de discernement.
  • Mise en signet la page fonctionne raisonnablement.
  • C'est de mieux en termes de performance, parce que si l'utilisateur actualise une page (ou frappe un lien vers la page à partir d'une source externe) le contenu est chargé première fois plutôt que d'avoir à charger une page blanche et puis, prenez le bon contenu via AJAX.

L'inconvénient est que les anciens navigateurs ne le supportent. Vous pourriez retomber sur un hashbang approche (si vous devez). Je ne sais pas du tout l'existence de cadres que de faire cela. Je préfère tomber sur pas le chargement dynamique de contenu (c'est à dire pleine page est rechargée lorsque l'utilisateur clique sur un lien). L'API de l'histoire va devenir de plus en plus largement pris en charge, de sorte que ce "problème" va se réduire avec le temps.

Voici un exemple de travail avec de la documentation. À partir de la barre d'adresse, ça ressemble à des pages se chargent de "la vieille école" (actualisation de la page entière), mais si vous jetez un oeil à la console de Firebug, Chrome dev tools), vous pouvez voir que le contenu est saisi par une requête AJAX.

Mozilla a quelques docs à ce sujet.

12voto

Shekhar Points 3632

Il y a aussi l'excellent Directeur

4voto

Deepak Thomas Points 530

Crossroads.js semble être l'un des meilleurs autour. Un avantage majeur de l'étant, il ne repose pas sur la fenêtre.emplacement pour le routage. Il est léger comme il se colle à faire juste de routage et d'acheminement seul.

Les autres, vous pouvez essayer: finch.js, davisjs (basé sur pushState de sorte que vous pouvez utiliser les liens existants comme un secours si JS échoue)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X