Quand utiliser “côté client de routage” ou “serveur de routage côté”?
Je suis un peu confus à ce sujet, et je me sens un peu stupide de poser cette question, mais je tiens à le comprendre.
Donc, dire que je suis en train de travailler avec un framework web, comme Backbone, Angular ou Durandal. Ce cadre comprend de routage.
Mais j'ai bien sûr toujours un serveur pour la base de données des trucs, et ainsi de suite, qui dispose également de routage.
Ma question est maintenant:
Quand utiliser "côté client de routage" ou "serveur de routage côté"?
Comment est-il "décide" si le routage est déjà réalisé sur le côté client ou si la requête est envoyée au serveur web?
J'ai particulièrement du mal à imaginer ce parce que le côté client pourrait faire de routage avant que le serveur ne se fait jamais à savoir à propos de cette demande.
Je serais très reconnaissant si quelqu'un pouvait m'expliquer comment ces deux systèmes de routage de travailler ensemble.
P. S.: je n'ai pas inclus les exemples de code parce que je ne suis pas à la recherche d'une réponse relative à un cadre particulier, mais en ce qui concerne le processus de routage en général.
- Que voulez-vous dire exactement par côté serveur de routage? Voulez-vous dire de la frappe d'un point de terminaison http définie par votre API, ou un point de terminaison http définie par votre base de données de l'API? Routage sur le côté client implique l'INTERFACE utilisateur; de routage sur le serveur implique généralement les ressources en voiture de l'INTERFACE utilisateur, ou qui sont conduits par l'INTERFACE utilisateur. Pourriez-vous éventuellement fournir un scénario hypothétique?
- J'ai trouvé cette quand on regarde ce projet: github.com/mikefrey/noah-challenge.git. Il fait un peu de routage à l'aide Angulaire et certains de routage à l'aide de Koa (côté serveur, comme l'express).
- J'en ai un similaire à la compréhension du problème. Im essayant de construire un SPA et je suis actuellement en utilisant sammy.js avec php dans le backend. Maintenant Im réflexion sur le passage à partir de PHP Node.js et il y a Express.js qui semble faire exactement ce que Sammy.js le fait, mais sur le côté serveur... déroutant
Vous devez vous connecter pour publier un commentaire.
tl;dr:
Imaginer l'utilisateur en cliquant sur un simple lien:
<a href="/hello">Hello!</a>
Sur une webapp qui utilise côté serveur de routage:
href
tagSi la webapp utilise côté client de routage:
Côté Client de routage son plus compliqué, parce qu'il est. Mais certaines bibliothèques de la rendre vraiment facile ces jours-ci.
Il ya plusieurs avantages de client-côté de routage: vous téléchargez moins de données pour afficher le nouveau contenu, vous pouvez réutiliser des éléments du DOM, de l'écran de chargement des notifications à l'utilisateur etc. Cependant, webapps qui génèrent les DOM sur le côté serveur sont beaucoup plus faciles à analyser (par les moteurs de recherche), ce qui rend l'optimisation SEO plus facile. La combinaison de ces deux approches est également possible, l'excellent Flux de Routeur SSR est un bon exemple pour cela.
import React from 'react'
ne fonctionne pas, donc il doit être importé dans tous les composants que j'écris. Mais les 200k script est pour une page dans le cas du côté serveur de routage.import
la directive n'a pas d'intégrer une nouvelle instance de Réagir dans chaque Réagir composant. Mais le code côté client contient la logique de toutes les pages, même ceux que l'utilisateur ne visite pas, si c'est votre question.reactSize * a theoretical script size (100k) * theoretical number of pages = 1.5m
. Merci de préciser que pour moi!Je pense que côté client de routage est utilisé par des applications de page, où le site n'est jamais à gauche.
Travaux de routage en l'attachant à la page en cours, où le côté client de routage cadres de réagir.
Côté serveur de routage est similaire à ce que apache n'par défaut lors de l'appel d'un sous-site par son url, mais node.js n'est qu'en utilisant les routes parce que les fichiers html doivent être rendus en premier.
Si vous avez un SPA avec un client de routage côté cadre, et que vous utilisez Node.js, vous avez encore besoin de serveur de routage côté pour basculer entre les sites
Applications modernes utilisent souvent à la fois côté client et côté serveur de routage dans un "mixte" ou "hybride" chemin de sorte qu'il est assez difficile de tracer une ligne entre ces deux techniques.
Pour mieux comprendre quand et comment à l'utilisation de routage côté serveur et côté client de routage, vous avez probablement comprendre ce qu'il se passe quand vous avez une grande application qui est utilisée pour gérer un grand de fabrication de l'entreprise (cela n'arrive PAS très souvent dans le monde réel. C'est juste un exemple utile).
Dans ces cas, vous aurez probablement différents personnes (avec différents rôles) qui voient les différents pièces de cet environnement complexe (différents aspects ou domaines). Par exemple, un ingénieur de voir un serveur de fichiers avec un lot de documents numériques, tandis que les personnes travaillant dans la société de la cantine serait de voir le menu pour être préparé, l'horaire de travail et le magasin. Ces sont totalement différentes de l'application "domaines" qui nécessite totalement différent de l'Isu il est donc logique de servir différents SPAs à chaque type d'utilisateur.
Dans ce cas, vous pourriez utiliser côté serveur de routage à servir une INTERFACE utilisateur spécifique (SPA) à un utilisateur spécifique, tandis que vous pourriez utiliser côté client de routage à naviguer à l'intérieur de cette INTERFACE utilisateur (et à charge de données). Pensez à ces SPAs de "tableaux de bord" ou "panneaux de contrôle" consacrée aux "tâches" et utilisé par des types spécifiques de "professionnels".
Par exemple, vous pourriez avoir un /myapp/ingénierie itinéraire pour vous tous les ingénieurs et /myapp/cantine pour l'ensemble de votre personnel de cantine. Chacune de ces Url représenterait un spécifique domaine et serait servir spécifique tableau de bord à un type spécifique de utilisateur. Ces Url seraient gérés côté serveur.
Au lieu de cela, vous pouvez utiliser côté client de routage à naviguer à l'intérieur de chacun de ces tableau de bord, le chargement des données et de la re-configuration de l'INTERFACE utilisateur en tant que de besoin.
Bien sûr, votre application serait probablement aussi une API RESTful utilisé par votre spa pour récupérer les données dont ils ont besoin. L'Url d'appartenance pour le RESTE de l'API doit être géré côté serveur pour effectuer leur travail (même si elles ne sont PAS associées à de véritables pages HTML) et sont utilisées que par votre SPAs "derrière les coulisses". Généralement, ils sont conservés dans un compte séparé "domaine" like /myapp/api .
La même chose arrive avec la page web statique (comme la page "contacts" et la page "à propos") qui sont généralement conservées dans un /myapp/static dossier (ou "domaine") et géré côté serveur (ce dossier ou "domaine" peut-être - et, souvent, est hébergé sur un autre serveur).
Donc, vous devriez probablement utiliser côté serveur de routage à séparé les domaines d'application les uns des autres et côté client de routage à naviguer à l'intérieur de chaque domaine.