路由
- 路由(routing)就是通过互联的网络把信息从源地址传输到目标地址的流动
路由器提供了两种机制:路由和传送
- 路由是决定数据包从起源到目的地的路径
- 转送将输出端的数据转移到适合的输入端
路由中有一个十分重要的概念叫路由表
- 路由表实质上就是一个映射表,决定了数据包的指向
后端路由阶段
- 后端解决URL和页面之间的映射关系
- 每个页面有本人对应的网址,就是URL
- URL发送到服务器,服务器会通过正则对该URL进行匹配,并且最初交给一个Controller进行解决
- Controller进行各种解决,最终生成HTML或者数据,返回给前端
- 这就实现一个IO操作
前后端拆散阶段
- 随着AJAX呈现,有了前后端拆散的开发模式
- 后端只提供API来返回数据,前端通过AJAX获取数据,并且能够通过JavaSCRIPT将数据渲染到页面上
- 这样做最大的长处就是前后端责任清晰,后端专一于数据,前端专一于交互和可视化上
- 并且当挪动端呈现后,后端不须要进行任何解决,仍然应用之前的一套API即可
前端渲染
SPA页面
- 单页面富利用,整个网页只有一个html页面
- 浏览器中显示的网页中的大部分内容,都是由前端写的js代码,在浏览器中执行,最终渲染进去的网页
- 益处:网络传输数据量小。不占用服务端运算资源(解析模板),模板在前端(很有可能仅局部在前端),改构造变交互都前端本人来了,改完本人调就行。
- 害处:前端耗时较多,对前端工作人员程度要求绝对较高。前端代码较多,因为局部以前在后盾解决的交互逻辑交给了前端解决。占用少部分客户端运算资源用于解析模板。
后端渲染
- 服务器间接生产渲染好对应的HTML页面, 返回给客户端进行展现。
- 益处:前端耗时少,即缩小了首屏工夫,模板对立在后端。前端(绝对)省事,不占用客户端运算资源(解析模板)
- 害处:占用服务器资源。
url的hash和html5的history
URL的hash
- URL的hash也就是锚点(#),实质上是扭转window.location的href属性
- 咱们能够通过间接赋值location.hash来扭转href,然而页面不产生刷新
- location.hash = 'aaa'
HTML5的history
- history.pushState({}, .. , 'sss') //可返回
- history.replaceState({},'','111') //不可返回
- history.go(-1) = history.back
- history.forward() = history.go(1)