使用Nashorn Engine进行React Server-Side Rendering

几个月前上线了一个电子商务系统平台,运用React开发前web前端,Groovy开发后端 REST API,应用性能及前端交互的响应非常好,但是有一个非常大的痛点。

整个React应用包括库与应用代码在minfy之后仍然超过2MB。当用户第一次访问应用浏览器无缓存时,页面一片空白,原因是浏览器需要下载JavaScript文件。即使已经使用webpack进行代码分割,访问页面仍需要下载1.5MB以上Javascript。在一个250KB/s的下载带宽下,页面可能需要~8秒才能首次渲染。这严重影响用户体验。

解决单页应用的首次渲染方案很明显是进行Server-Side渲染。在google了一些解决方案后,大多数文章及demo都是基于NodeJS,这也很自然,前后端都是JavaScript技术栈。因为web端采用了React,手机端采用了React Native,所以使用NodeJS也行。不过因为后端技术栈主要是Groovy运行于JVM上,所以采用NodeJS会增加部署的复杂度,尤其是当每个用户企业需要部署一个应用实例的话,每个用户企业都要部署一个NodeJS与JVM,从扩展角度来看不够经济。

JDK 1.7开始增加了Nashorn Script Engine,可以在JVM上运行JavaScript。网上关于运用Nshorn进行Server-Side Rendering的文章很少。有一篇非常好,Project Nashorn – JavaScript on the JVM,详

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值