QBao-Universal框架(未完成)
全栈工程师之路
H5App框架用上之后,立刻就会面临一个非常棘手的问题,也是所有SPA(Single Page Application)都会遇到的问题,就是首屏渲染速度。
单页应用的JS包含了大量的展示逻辑和业务逻辑,还要加上各种第三方类库,体积非常庞大,而下载的过程中,页面是卡死的,用户只能看到白屏,体验非常差。在网络状况好的情况下,这种等待还是可以忍受,不过一旦带宽达不到,就会产生比较严重的问题。
ReactJS解决这个问题的方案是服务器渲染(Server Rending),用户的请求到达服务器的时候,由服务器计算首屏页面,发送到浏览器的是可以直接渲染的页面,用户就可以立刻看到。与此同时,浏览器再去下载页面的JS和应用状态(State),ReactJS运行起来后,由于虚拟DOM的存在,渲染不会导致页面重刷,用户得到的就是顺滑的体验。
QBao-Universal框架就是这条道路上的尝试,Universal的含义是服务器和客户端使用同一套代码。请求到达服务器时,由NodeJS渲染React控件,而后续的客户端跳转由客户端路由完成。