2012-04-09 6 views
22

Ich habe verschiedene RIA untersucht und habe bemerkt, einige Leute mit oder JavaScript Routing. Einfach durchblättern "JavaScript Routing" sieht nach einer Möglichkeit aus, Ihre Website zu durchqueren ... aber dafür kann ich einen einfachen Link verwenden. Was bedeutet, dass ich es absolut nicht verstehe.Was kostet JavaScript Routing?

So ...

  • Was bedeuten Routing Sie, dass ein regelmäßiger Anker oder Link nicht?
  • Ist es nur in bestimmten Umgebungen geeignet? (d. h. ASP.NET oder direktes HTML)
  • Wozu dient es?
  • Welcher Zweck treibt seine Existenz an?
+0

Hervorragend formuliert. – orbfish

Antwort

47

Routing ist eine Möglichkeit, Anwendungszustände zu organisieren und zu verwalten. Ein Routing-Framework in JavaScript hilft Ihnen, den Status der Anwendung zu ändern - möglicherweise von einem Admin-Bereich in einen anderen zu wechseln -, während Anwendungspersistenz beibehalten wird.

Wenn Sie aus einem Anwendungszustand navigieren möchten, z. /admin/users, zu einem anderen, z.B. /admin/orders können Sie einen normalen Link verwenden, wie Sie es vorschlagen. Aber dann werden Sie den Browser veranlassen, von einer HTML-Seite zu einer anderen zu navigieren. Dies ist offensichtlich die normale Art, in der man im Web navigiert. Aber in einer JavaScript-Anwendung ist das ziemlich ineffizient!

Wenn Sie eine komplexe In-Browser-Anwendung in JavaScript ausführen, muss diese App beim Start viel Arbeit leisten. Es registriert Event-Handler, lädt und führt eine Menge JavaScript aus und rendert manchmal die gesamte Seitenschnittstelle dynamisch (im Fall von ExtJS und einigen anderen Bibliotheken). Das ist eine Menge zusätzlicher Arbeit für den Browser, um eine JavaScript-Anwendung unter /admin/orders einzurichten, die viel mit der unter /admin/users gemeinsam ist. Ein effizienterer Weg besteht darin, dass die Verknüpfung ein Ereignis auslöst, das die Anwendung überwacht, und dass die Anwendung darauf reagiert, indem sie den Status der Anwendung ändert, indem sie die Benutzeransicht entfernt oder versteckt und sie durch eine Bestellansicht ersetzt. Routing ist eine Möglichkeit, diese verschiedenen Schnittstellen darzustellen, indem ein Token - normalerweise ein URL-Fragment wie /admin/users - verwendet wird, um zu verfolgen, wo sich der Benutzer in Ihrer Schnittstelle befindet.

Dies ermöglicht der Anwendung, das dynamische Objektmodell zu verwalten, für das bereits Zeit verbraucht und Speicher zum Erstellen verwendet wurde. Die Benutzeroberfläche reagiert schneller, und wenn Sie die URL-Verlaufsverwaltung über einen Hashtag oder einen PushState verwenden, können Sie mit den Vor- und Zurück-Schaltflächen des Browsers in Ihrer App navigieren, ohne jedes Asset erneut auf die Website zu laden Seite jedes Mal und wischen Ihren Anwendungsstatus. Die URL-Verwaltung ermöglicht auch eine Tiefenverknüpfung mit einer Seite der Anwendung: Beim Laden überprüft der Router Ihrer App die empfangene Route-Zeichenfolge, markiert sie und lädt die Schnittstelle, die Sie in Ihrer Routingtabelle angegeben haben.

Routing ist nicht erforderlich, um Persistenz zu verwalten, aber es ist eine gute Möglichkeit, Ihre persistenten Zustände zu organisieren. Oft geht ein Routing-System Hand in Hand mit URL-History-Management, wie Davis.js. Aber es gibt auch Routing-Bibliotheken, die nicht mit dem URI in Konflikt geraten, die einen abstrakten Token-Status beibehalten, den Sie verwenden oder anzeigen können, wie Sie es für richtig halten, wie Crossroads.js.

+0

WOW! Ich verstehe es jetzt total! –

+0

Also, natürlich würde dies nicht in einer ASP.NET MVC oder SharePoint-Anwendung verwendet werden ... richtig? –

+1

SharePoint, wahrscheinlich nicht. SharePoint verwaltet sein eigenes Markup, also würden Sie diese Art der Frontend-fokussierten Arbeit nicht tun. ASP.NET MVC könnte möglicherweise als Server-Side-Technologie für eine JavaScript-powered RIA verwendet werden, so dass die Antwort dafür "vielleicht" ist. Die wichtigste Frage ist, ob Sie eine einseitige JavaScript-Anwendung ausführen. – zetlen

Verwandte Themen