I've been looking at various RIA and have noticed some folks using or requesting JavaScript Routing. Just skimming through it 'JavaScript Routing' looks like a way to traverse your site...but I can use a simple link for that. Which means I absolutely 'dont get it'.
So...
Routing is a way of organizing and managing application states. A routing framework in JavaScript helps you to change the state of the application--perhaps moving from one admin panel section to another--while maintaining application persistence.
html. Also can I route to specific div/section html tag: user enter http://mysite/ru/contacts to display contacts section in index. ru.
We care about client-side routing for a few reasons: It gives the user a URL that makes more intuitive sense to be able to see where they are currently at in your application. We want to give the user the ability to use the “back” and “forward” buttons in their browser using the history API.
Router() function is used to create a new router object. This function is used when you want to create a new router object in your program to handle requests. Multiple requests can be easily differentiated with the help of the Router() function in Express. js.
Routing is a way of organizing and managing application states. A routing framework in JavaScript helps you to change the state of the application--perhaps moving from one admin panel section to another--while maintaining application persistence.
If you want to navigate from one application state, e.g. /admin/users
, to another, e.g. /admin/orders
, you could use a normal link as you suggest. But then you're going to cause the browser to navigate from one HTML page to another. This is, obviously, the normal way that one navigates around the Web. But in a JavaScript application, this is pretty inefficient!
If you're running a complex in-browser application in JavaScript, then that app needs to do a lot of work when it's starting up. It registers event handlers, loads and executes a bunch of JavaScript, and sometimes renders the entire page interface dynamically (in the case of ExtJS and a few other libraries). That's a lot of extra work for the browser to set up a JavaScript application at /admin/orders
that has a lot in common with the one at /admin/users
. A more efficient way is for the link to fire an event that the application monitors, and for the application to respond by changing the application's state--perhaps by removing or hiding the users view and replacing it with an orders view. Routing is a way of representing these different interfaces, using a token--usually a URL fragment like /admin/users
--to keep track of where the user is in your interface.
This allows the application to maintain the dynamic object model that it's already burned time and used memory to create. It makes the user interface respond more speedily, and, if you're using URL history management via a hashtag or pushState, it allows the user to navigate around your app using the back and forward buttons of their browser, without reloading every asset on the page every time and wiping your application state. URL management also allows deep linking to some page in the application: on load, your app's router examines the route string that it receives, tokenizes it, and loads up the interface you've specified in your routing table.
Routing is not required in order to manage persistence, but it's a good way of organizing your persistent states. Often, a routing system goes hand in hand with URL history management, like Davis.js. But there are also routing libraries that don't mess with the URI, that maintain an abstract tokenized state which you can use or display as you see fit, like Crossroads.js.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With