Wenn die Verwendung von "client-Seite "routing" oder "server-side-routing"?
Ich bin ein wenig verwirrt über dieses, und ich fühle mich etwas blöd diese Frage, aber ich will es verstehen.
So, sagen, ich arbeite mit einem client-seitigen web-Frameworks wie Backbone, Angular oder Durandal. Dieser Rahmen umfasst das routing.
Aber ich habe natürlich noch einen server für die Datenbank-Sachen, und so weiter, die hat auch routing.
Meine Frage ist jetzt:
Wenn die Verwendung von "client-Seite "routing" oder "server-side-routing"?
Wie ist es "entschieden", ob das routing ist bereits erfolgt auf der client-Seite ist, oder ob die Anfrage zunächst an den web-server?
Ich habe besonders schwer, sich dies vorzustellen, da die client-Seite tun könnte, routing, bevor der server bekommt zu wissen, über diesen Antrag.
Ich wäre sehr dankbar, wenn jemand erklären könnte, wie diese beiden routing-Systeme arbeiten zusammen.
P. S.: ich habe nicht im Lieferumfang enthalten code-Beispiele, weil ich bin nicht auf der Suche für eine Antwort zu einem bestimmten Rahmen, aber in Bezug auf den routing-Prozeß im Allgemeinen.
- Was genau meinst du mit server-side-routing? Meinst du schlagen, einen http-Endpunkt definiert durch Ihre API, oder ein http-Endpunkt definiert durch Ihre Datenbank-API? Routing auf dem client-Seite umfasst der UI; routing auf der server-Seite in der Regel umfasst die Ressourcen, die Benutzeroberfläche, oder angetrieben werden, die durch die UI. Könntest du eventuell ein hypothetisches Szenario?
- Ich stieß zuerst auf diesen, wenn mit Blick auf dieses Projekt: github.com/mikefrey/noah-challenge.git. Er hat einige routing mit Winkel-und einige routing mit Koa (server-Seite, wie express).
- Ich habe ein ähnliches Verständnis-problem. Ich versuche zu bauen, ein SPA und ein Im, der zurzeit mit sammy.js mit php im backend. Nun ich denke über einen Wechsel von PHP zu Node.js und es ist Express.js,, das scheint genau das zu tun, was Sammy.js das funktioniert, aber auf der server-Seite... verwirrend
Du musst angemeldet sein, um einen Kommentar abzugeben.
tl;dr:
Vorstellen, dass Benutzer der Klick auf einen einfachen link:
<a href="/hello">Hello!</a>
Auf eine webapp, die verwendet server side routing:
href
tagWenn die webapp verwendet client side routing:
Client-side routing-sound komplizierter, weil es ist. Aber manche Bibliotheken machen es wirklich leicht in diesen Tagen.
Gibt es mehrere positive Seiten der client-Seite-routing: Sie laden weniger Daten für die Darstellung neuer Inhalte, die Sie wiederverwenden können DOM-Elemente, Anzeige be-Benachrichtigungen an Benutzer etc. Aber webapps, die Erstellung des DOM auf der server-Seite sind viel einfacher zu durchsuchen (durch Suchmaschinen), wodurch SEO-Optimierung zu erleichtern. Die Kombination dieser beiden Ansätze ist ebenfalls möglich, die ausgezeichnete Flow-Router SSR ist ein gutes Beispiel dafür.
import React from 'react'
wird nicht funktionieren, also muss es importiert werden, in jeder Komponente, die ich Schreibe. Aber der 200k-Skript ist für eine Seite im Fall von server-side-routing.import
Richtlinie nicht einbetten, wird eine neue Instanz von sich auf jede Reagieren Komponente. Aber der clientseitige code, enthält die Logik für alle Seiten, auch diejenigen, die der Benutzer nicht besuchen, wenn das ist Ihre Frage.reactSize * a theoretical script size (100k) * theoretical number of pages = 1.5m
. Danke für die Klarstellung, dass für mich!Ich denke client side routing ist von single page Anwendungen, wo die eigentliche Website ist nie verlassen.
Routing funktioniert durch anfügen an die aktuelle Seite, auf der client-Seite routing Rahmenbedingungen reagieren.
Server side routing ähnlich ist, führt der apache standardmäßig beim Aufruf einer Unterwebsite durch die url, aber node.js nicht, dass durch die Verwendung von Routen, weil die html-Dateien gerendert werden müssen erste.
Wenn Sie ein SPA mit einem client side routing-Rahmen, und Sie sind mit Node.js Sie müssen noch server side routing zum wechseln zwischen Seiten,
Modernen Anwendungen Häufig sowohl client-side und server-side-routing in eine "gemischte" oder "hybride" Weise, so ist es Recht schwer eine Linie zu ziehen zwischen diesen beiden Techniken.
Besser zu verstehen wenn und wie Verwendung von server-side-routing und client-side routing, werden Sie wahrscheinlich haben, um herauszufinden was passiert, wenn Sie eine große Anwendung, die verwendet wird, um die Verwaltung einer großen manufactoring company (dies geschieht NICHT sehr oft in der realen Welt. Es ist nur ein gutes Beispiel).
In diesen Fällen werden Sie wahrscheinlich haben verschiedene Menschen (mit verschiedenen Rollen), die unter verschiedenen Teile von diesem komplexen Umfeld (verschiedene Aspekte oder domains). Zum Beispiel, ein Ingenieur, ein Datei-server mit einer Menge digitaler Dokumente, während die Menschen im Unternehmen arbeiten, Kantine würde, sehen Sie das Menü, um vorbereitet zu sein, die Arbeitszeiten und die-Shop. Das sind ganz andere Anwendung "domains", erfordert völlig unterschiedliche UIs, so es Sinn macht zu dienen, die verschiedenen Thermen, die für jeden Typ von Benutzer.
In diesem Fall könnten Sie die Verwendung von server-side-routing zu dienen eine bestimmte Benutzeroberfläche (SPA) an einen bestimmten Benutzer, während Sie könnte verwenden Sie die client-Seite routing zu navigieren innerhalb dieser UI (und laden Daten). Denke, diese SPAs als "dashboards" oder "control panels" gewidmet bestimmte "Aufgaben" und durch bestimmte Arten von "Profis".
Zum Beispiel, könnten Sie eine /myapp/engineering-route für alle Ingenieure und a /myapp/canteen für alle deine Mensa-Personal. Jede dieser URLs eine bestimmte domain und würde dienen eine bestimmte dashboard zu einer bestimmten Art von Benutzer. Diese URLs verwaltet würden server-Seite.
Statt, die Sie verwenden würden client-Seite routing zu navigieren innerhalb jeder dieser dashboard, laden von Daten und re-Konfiguration der Benutzeroberfläche benötigt.
Natürlich, Ihre app würde wahrscheinlich auch eine RESTful-API verwendet, die durch Ihre Thermen, um die Daten abzurufen, die Sie benötigen. Die URLs gehören die REST-API verwaltet werden müssen, server-side um Ihre Aufgabe zu erledigen (auch wenn Sie NICHT verbunden, um echte HTML-Seiten) und sind aufgerufen, die nur durch Ihre SPAs "hinter den kulissen". Sie sind in der Regel gehalten in einem abgetrennten, "domain" wie /myapp/api .
Geschieht das gleiche mit statischen web-Seite (wie die Seite "Kontakt" und "über" - Seite), die sind in der Regel gehalten /myapp/static Ordner (oder "domain") - und managed-server-Seite (dieser Ordner oder "domain" kann - und oft ist - gehostet auf einem anderen server).
Also, sollten Sie wahrscheinlich verwenden server-side-routing zu separate Anwendungen Domänen voneinander und client-side routing zu navigieren innerhalb jeder Domäne.