我对此有点困惑,我觉得问这个问题有点愚蠢,但我想了解它。
因此,假设我正在使用客户端 Web 框架,例如 Backbone、Angular 或 Durandal。该框架包括路由。
但我当然仍然有一个服务器用于数据库的东西,等等,它也有路由。
我现在的问题是:
我很难想象这一点,因为客户端可以在服务器知道该请求之前进行路由。
如果有人能解释这两个路由系统如何协同工作,我将不胜感激。
P.S.:我没有包含代码示例,因为我不是在寻找关于特定框架的答案,而是关于一般的路由过程。
最佳答案
tl;博士:
想象一下用户点击了一个简单的链接:
<a href="/hello">Hello!</a>
在使用 服务器端路由 的 webapp 上:
href
标签中找到的 URL 发出 HTTP GET 请求 如果 webapp 使用 客户端路由 :
客户端路由听起来更复杂,因为它是。但是现在有些图书馆真的很容易。
客户端路由有几个优点:你下载更少的数据来显示新内容,你可以重用 DOM 元素,向用户显示加载通知等。 然而,在服务器端生成 DOM 的 web 应用程序更容易抓取(通过搜索引擎),从而使 SEO 优化更容易。结合这两种方法也是可能的,优秀的 Flow Router SSR 就是一个很好的例子。
关于web-applications - 何时使用 "client-side routing"或 "server-side routing"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23975199/