yizihan / blog

Record
1 stars 0 forks source link

前后端路由&前后端渲染 #25

Open yizihan opened 6 years ago

yizihan commented 6 years ago

route & router


服务端路由 + 服务端渲染

客户端发送HTTP请求,服务端根据请求的URL,找到相应的映射函数,然后执行函数,并将函数的返回值发送给客户端。 对于静态资源服务器,所有URL的映射函数就是一个文件读取操作。 对于动态资源服务器,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理等。

Express

app.get('/', (req, res) => {
    // 返回静态资源
    res.sendFile('index')
})
app.get('/users' (req, res) => {
    // 动态查找数据库内容并返回值
    db.queryAllUsers()
      .then(data => res.send(data))
})

前端路由 + 前端渲染

前端路由

页面跳转的URL规则匹配由前端来控制。

前端渲染

把渲染的任务交给了浏览器,通过客户端的算力来解决页面的构建,这很大程度上缓解了服务端的压力。而且配合前端路由,无缝的页面切换体验对用户友好。但是带来的坏处就是对SEO不友好!


前端路由+服务端渲染

前端框架的 服务端渲染 大多依然采用的是 前端路由 ,并且由于引入了状态统一、vnode等概念,它们的 服务端渲染 对服务器的性能要求比php等语言基于 字符串填充的模板引擎渲染 对于服务器的性能要求高得多。

预渲染:先在服务端构建出一部分静态的html文件,用于直出浏览器;然后剩下的页面再通过常用的前端渲染来实现。

参考文章: