ssr链接怎么用(安卓手机ssr怎么添加节点)
背景
「让每一个用户在最短的时间内看到页面上重要的内容」一直以来都是前端工程师们精益求精的方向。对于一个H5的源码页面,我们已经有了很多缩短首屏渲染时间的方法,比如数据预取,离线缓存。但在目前看来,由于数据预取和离线缓存都依赖客户端的能力,很多时候会给我们带来一些限制。比如用于增长业务的外投拉新页面,我们并不能知晓第三方APP是否具备这样的能力。再比如使用离线缓存能力,我们受制于命中率高低,以及缓存对APP性能带来的负面影响这样的问题。
服务端渲染,让最重要的内容和用户之前,只需要请求HTML DOC的时间,并且不依赖于客户端的能力,可以大大缩短用户看到页面首屏内容的时间。
方案要点
目前主流前端框架比如React,都已经提供了支持SSR的API,我们可以只用几行代码便将一段原本执行在客户端的绘制UI的逻辑转化为可以在Node层直出HTML的功能。在此基础之上,一个SSR技术方案应该同时做到以下几点要求:
页面首屏有效绘制(FMP)时间变短:从webview发出页面url请求,到用户看到首屏有效内容的时间真实变短。
应用稳定性高,运维成本低:保证由Node应用提供前端页面,尽可能跟已经非常成熟的「CDN缓存前端静态资源 Java服务提供首屏数据」有相近的稳定性。并且Node服务一旦出现不可用的情况,页面能够自动降级到稳定的CSR(当下H5页面都在用的客户端渲染)模式,而不需要工程师手动执行降级。
低研发成本:采用SSR以后,前端工程师仍然只需要关心业务功能的实现,而无需为满足稳定性要求增加额外开发成本。
本文将重点介绍闲鱼的SSR方案围绕这三个要点进行了怎样的设计。
技术架构
先来看下闲鱼目前SSR架构整体的设计,再来单独聚焦每一个功能点的实现。
如图,架构设计分别考虑了用户正常访问的SSR链路(红色结点),以及SSR应用不可用时自动降级到的CSR链路(蓝色结点)。用CSR链路作为SSR失败时的降级兜底方案,是保证SSR方案稳定性的关键点。
SSR链路基于serverless的node应用
随着阿里Serverless生态建设的不断完善,前端同学开发Node应用,已经不需要像面对传统Node应用一样,花费太多时间来运维Node应用。我们可以凭借「函数即服务」的FaaS能力,聚焦于Node应用本身功能的实现。
为了实现SSR功能我们需要在Node层实现两个服务:
数据聚合。一个前端页面首屏需要的数据,可能来自于多个服务端(Java)的接口。我们在Node层实现一个Service,该Service调用首屏依赖的所有服务端接口,将其汇聚为一个接口,输出全部首屏数据。这种由Node层实现数据胶水的设计,同时可以降低前端与服务端开发协作的成本。前端只需要得到服务端原子功能级别的数据,便可以根据UI的需要按照自己方便的方式定义最终输出的数据结构。
直出HTML页面(HTTP服务)。当用户访问某个URL时,Node应用获取页面构建产物,同时调用上条提到的首屏数据接口,将返回的数据用于生成页面的DOM树。
SSR应用网关
当需要发布某一个前端应用,或者当某一个应用不可用时,我们肯定不希望影响到其他的应用。所以我们在业务维度,将跟某个特定业务相关联的前端功能作为独立的Node应用单独维护。那么,为什么我们还需要一个公共的网关为应用提供服务,而不是每一个应用单独向用户提供服务呢?
原因是每一个对用户开放的HTTP服务,都必须接入集团的「统一接入」机制。统一接入承载了转发、负载均衡、安全认证等多种必不可少的功能。接入的整个流程,包括应用架构的评审、域名的配置、其他安全机制的确认等等需要1~2个工作日。而由于我们不断会有新的业务、新的项目,为每一个新应用都走一遍统一接入是要消耗大量人力成本且没有必要的。因而我们在所有Node应用之上,架设网关应用,利用Nginx根据访问path的不同,将用户的请求分发到不同的应用上。网关本身作为CDN回源的源站。
CDN边缘节点
CDN可以将源站上的资源缓存到距离客户端最近的CDN节点上。当用户访问该静态资源时,直接从缓存中获取,避免通过较长的链路回源,提高访问效率。这个过程被称为「CDN加速」。
除了资源加速之外,阿里云的CDN节点还提供了基于Serverless的边缘计算能力,简单来说,就是除了缓存静态文件,CDN还可以作为JavaScript脚本的运行环境。这让Node服务的稳定性还没有达到业务的要求时,前端工程师可以通过在CDN节点上部署JavaScript代码,让CDN节点完成一定的功能。CDN边缘程序、边缘缓存和源站的链路如下图。
对于SSR来说,CDN边缘程序实现的功能非常简单:当获取SSR页面成功时(status 200),将直出的页面返回给用户,否则访问降级页面CSR的地址,保证用户永远能够看到正确的页面。我们将CDN缓存周期设置为5分钟。缓存生效时,用户访问链路为上图紫色部分所示,缓存失效时,为红色链路。
自此,我们就解释了开始时3个问题的前2个:怎么保障Node应用稳定性,以及怎么进行页面降级。
CSR链路
CSR降级链路虽然不经常被用户覆盖到,但对于整个方案来说仍然很重要。用户访问CSR页面时,首先从air源站获取到html页面(此时页面中没有任何首屏内容),然后执行html页面中引入的JS脚本,调用获取首屏数据的mtop接口(阿里弹外异步请求数据获取接口)进行页面渲染。因而对于CSR链路的实现,我们只需要关心两件事情:
静态资源文件需要构建并推送到air。
需要有在Web端可以被调用的Ajax接口(在阿里一般被称为mtop接口)。
对于第一点,我们可以在应用构建和发布的时候,直接将只有layout内容的HTML模板发布。对于第二点,我们可以复用SSR链路时开发的首屏数据接口,直接将其对接集团对外的网关,无需二次开发,如下图所示。
由此可以让整个链路全部由前端同学完成,无需像传统CSR页面开发那样由服务端同学提供mtop接口。
实现SSR链路和CSR链路之后,我们已经满足了3个关键要素中的前2个:
FMP时间缩短:
SSR链路中,用户访问到首屏有效内容的时间为:
•CDN缓存命中时:HTML页面 RT。
•CDN缓存未命中时:Node服务直出页面执行时间 HTML页面RT
CSR链路中,用户访问到首屏内容的时间为:
•HTML页面RT JS文件下载
剪刀手爱德华台词(剪刀手爱德华经典台词)剪刀手爱德华台词(剪刀手爱德华经典台词)剪刀手爱德华是蒂姆波顿执导的一部关于机器人的影片,由约翰尼德普薇诺娜瑞德黛安娜维斯特文森特普莱斯等主演。影片讲述的是机器人爱德华独自在古堡生
预约未来Audi电动车策略多重影响产业关係日趋複杂今时不比往日,过去製作汽车时所必须面对的问题远比今日来得简单,环境政策资源市场技术等因素,都影响着未来汽车的走向。多数时候我们都以较片面的条件描述车辆,例如
上空绝招压轴好戏AudiA3Cabrio文赖震宇图Automedia难以抗拒的敞篷时髦风格期待S3高性能敞篷版本推出国外预估推出时程2014年Q1从2011年日内瓦车展以概念车之姿现身后,AudiA3量产车版本的样貌并未
AudiA3重点不在掀背追加多种车身选择造型应有大幅修改国外预估推出时程2012年第四季现行AudiA3从2003年推出至今已有相当长的时间,确实也到了该要改款的时候,我们的间谍照供应商以现有的Audi造
新成员AudiA3Cabriolet传言多时的AudiA3已于国内正式推出,换上全新家族式样的水箱护罩及车头线条设计,让A3有着较以往更加精緻的样貌。本次新世代A3不仅外观更加精緻外,其内装也更具质感,加上整体格局铺
Audietronprototype创下SUV车款新境界缔造0。28Cd优异风阻表现电动车的充电能力与续航力是兼顾日常实用性的两大重点因素,Audietronprototype原型车拥有能适用150kW功率30分钟内快充功能,其中经过WLTP测试,最大续航力更超过
2017PEUGEOT法式团圆乐PEUGEOT车主们引颈而望年终最大优惠派对PEUGEOT法式团圆乐健诊活动,自即日起热闹展开至2017年1月21日止,邀请PEUGEOT车主们回厂为2017年行车安全洞察先机,预
向经典致敬INFINITI登台20週年特展今年适逢INFINITI品牌来台20週年,INFINITITAIWAN特别于2017年4月19日至4月23日,假国际知名地标台北101水舞广场,举办INFINITI经典20Q60沸
竞争战略(竞争战略的三大战略)竞争战略(竞争战略的三大战略)竞争策略做出分析与观点阐述。一前言伴随本土品牌的崛起和壮大,美妆行业走向了线上线下融合,探索出了更多创新运营方式。本文针对近年来的后起之秀,以线下实体
企业竞争优势(企业竞争战略)企业竞争优势(企业竞争战略)企业战略博弈豆瓣评分9。2财智推荐企业最重要的竞争优势在于建立进入壁垒,公司的获利能力就取决于你是不是能有效地抵挡潜在竞争对手进入市场,并且有效掌握其他
奥迪怎么样(奥迪车价位)如果想要在国内汽车市场买一台豪华车,那么奥迪这个品牌的旗下车型相信会是大多数人的首选。凭借官车的形象以及夸张的优惠力度,奥迪在国内豪华车市场里一直以来也都是销量老大般的存在。虽然不
7周是多久(7周时间久吗)怀孕第七周胎儿宝宝大脑正在飞速发展,宝宝的心脏也已形成,宝宝的眼睑胃食管舌头等都在逐渐成长,这个时候孕妈和准爸爸最需要做的事情就是去医院确定预产期,安排好产检,更好地确保孕期安全健
眼药水保质期一般多久(眼药水开封后能用多久?)大家要注意眼药水的正确使用方法,过期的眼药水千万不要用,否则会对眼睛造成损伤,容易导致感染性疾病的产生,眼药水也是有保质期的,大家应该要注意眼药水的保质期,并且要注意眼药水的正确使
粽子烧多久(生粽子煮多久才会熟普通锅)导语煮粽子时,别只加清水煮,多加二味,牢记4个要点,粽子又香又糯,还不夹生,方法真靠谱。节分端午自谁言,万古传闻为屈原。堪笑楚江空渺渺,不能洗得直臣冤。时间过得是真快,转眼间就快过
胸透多久可以怀孕(男士胸透后影响备孕吗)胸透检查?没听说过孕前检查还做胸透呢?既然医生让做,那就做吧不对!胸透检查不是有射线辐射吗?医生不会开错单子了吧!没错啊!到底做不做呢?有这样疑问的朋友,可能对胸透检查存在一定的误
治疗肝硬化要多久(肝硬化晚期)肝硬化患者最关心的问题,肯定是自己还能活多久?这主要是根据患者自身的身体状况和具体情况来判断的,每个患者都会有所不同。只要能抓住发病机制,就能从多层次多渠道多靶点进行靶向治疗,患者
拔智齿后要疼多久(拔智齿后牙齿酸痛会持续多久)拔牙后几天预计会有一些疼痛和不适。那么具体会痛多久,为什么会疼痛呢?我们听东莞口腔医院王立超院长帮我们解答。王立超院长拔牙后发生的疼痛量取决于用于拔牙的程序和对邻近组织的创伤程度。
赤兔养多久(哈弗赤兔首保是多少公里)大家好,欢迎来到58汽车真值吗栏目,今天要和大家聊聊目前比较火热的一款紧凑级SUV,哈弗赤兔。哈弗赤兔售价区间为10。9812。38万元,主要的受众群体为一些三口之家或刚刚步入社会
哈乐吃多久(哈乐一般吃多久一个疗程)赵先生,42岁,结婚有十余年了,早泄的问题一直困扰着夫妻二人,这两年发现自己又患上了前列腺增生,导致一直有尿频的情况。赵先生这两年一直吃坦索罗辛治疗,效果很稳定,但是神奇的事情发生
药片放多久(药片放空气几小时还能吃吗)在生活中难免出现感冒发烧和腹痛腹泻,所以家中会常备药物,以备不时之需。但药物储存不当会使得药物变质,从而失去其药效,因此需保存好药品。如何保存药品?1药物打开瓶后立即把干燥剂扔掉每
广西村支书翘腿接待村民被停职是怎么回事近日有关于广西村支书翘腿接待村民被停职的问题受到了很多网友们的关注,大多数网友都想要知道广西村支书翘腿接待村民被停职的具体情况,那么关于到广西村支书翘腿接待村民被停职的相关信息,小
广西村支书翘腿接待村民被停职这两天关于广西村支书翘腿接待村民被停职在网上的热度是非常高的,很多网友们也都是非常关注广西村支书翘腿接待村民被停职这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,那么如果