最近在把一个c端的项目重构成首屏服务端渲染(SSR:server side render)
项目用到的技术: React 、webpack、koa2、webpack
1、首先打开斗罗大陆魂师对决手游。2、然后进入游戏后找到角色界面并打开。3、其次找到角色的觉醒界面。4、在觉醒武魂真身时使用ssr真身之匣即可。
对于重构成SSR,redux并不是必须的,所以没用redux
本篇文章先讲述一些理论的东西,之后会写代码篇
一、 什么是服务端渲染
简单理解是将组件或页面通过服务器生成html字符串,再发送到浏览器,手机ssr怎么添加节点,最后将静态标记"混合"为客户端上完全交互的应用程序,
如下图所示。
二、 使用SSR的利弊
SSR的优势
SSR固态继电器以触发形式,可分为零压型(Z)和调相型(P)两种。在输入端施加合适的控制信号VIN时,P型SSR立即导通。当VIN撤销后,负载电流低于双向可控硅维持电流时(交流换向),SSR关断。Z型SSR内部包括过零检测电路,在施加。
1. 更利于SEO。
不同爬虫工作原理类似,只会爬取源码,不会执行网站的任何脚本(Google除外,据说Googlebot可以运行javaScript)。使用了React或者其它MVVM框架之后,页面大多数DOM元素都是在客户端根据js动态生成,可供爬虫抓取分析的内容大大减少(如图一)。另外,浏览器爬虫不会等待我们的数据完成之后再去抓取我们的页面数据。服务端渲染返回给客户端的是已经获取了异步数据并执行JavaScript脚本的最终HTML,网络爬中就可以抓取到完整页面的信息。
2. 更利于首屏渲染
首屏的渲染是node发送过来的html字符串,并不依赖于js文件了,这就会使用户更快的看到页面的内容。尤其是针对大型单页应用,打包后文件体积比较大,普通客户端渲染加载所有所需文件时间较长,首页就会有一个很长的白屏等待时间。
acl4ssr用法是打开SSR->路由->选择自定义acl文件->输入下载地址->点击确认后回到SSR主界面->下翻找到。ACL文件更新,点击即可,ACL文件内容由开源团队维护更新,如需更新ACL文件内容,点击软件页面底部的ACL文件更新即可。
SSR的局限
1、以苹果7手机为例,超鬼王或大型活动的随机ssr召唤券,只需要点击兑换就可以获得式神了,首先要打开手机上的《阴阳师》。2、登录上去之后,点击界面中的活动入口。3、进入活动界面后,点击进入兑换商店。4、选择随机ssr召唤。
服务端压力较大
本来是通过客户端完成渲染,现在统一到服务端node服务去做。尤其是高并发访问的情况,会大量占用服务端CPU资源;
开发条件受限
1、进入游戏,在主界面点击生活区。2、在生活区中选择指挥喵,进入指挥喵界面。3、然后在选择右下角的训练。4、进入训练界面,点击开始训练,选择需要训练的喵箱,等待训练完成即可。
学习成本相对较高
除了对webpack、React要熟悉,还需要掌握node、Koa2等相关技术。相对于客户端渲染,项目构建、部署过程更加复杂。
三、 时间耗时比较
数据请求
由服务端请求首屏数据,而不是客户端请求首屏数据,这是“快”的一个主要原因。服务端在内网进行请求,数据响应速度快。客户端在不同网络环境进行数据请求,且外网http请求开销大,导致时间差。 下图为服务端渲染的数据请求路线和客户端渲染的数据请求路线图
首先打开手机桌面中的SSR,进入到主界面后,点击上方的下拉三角号,再点击加号,弹出来的选项,点击“手动设置”,在手动设置界面中点击“远程端口”,选择相应的端口后点击"确定,之后再点击密码,在里面输入密码后,向下滑动。
html渲染
服务端渲染是先向后端服务器请求数据,然后生成完整首屏html返回给浏览器;而客户端渲染是等js代码下载、加载、解析完成后再请求数据渲染,等待的过程页面是什么都没有的,就是用户看到的白屏。就是服务端渲染不需要等待js代码下载完成并请求数据,就可以返回一个已有完整数据的首屏页面。