路由

  • 路由(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)