NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Twitter 基于 React 的网络协议栈媲美原生性能

  • 2017-02-23
  • 本文字数:1230 字

    阅读完需:约 4 分钟

最近,Twitter 将他们的移动 Web 端迁移到了一个新的、基于 JavaScript 的网络协议栈中。同时,他们阐述了移动 Web 技术在与原生应用性能的对比中都有哪些优势。

在一条非正式的 Twitter 动态中,Twitter 的工程师 Nicolas Gallagher 提到,迁移工作已经完成:

今天我们将 Twitter 所有的移动 web 端流量(听起来还挺多的)迁移到了我们新的网络协议栈中:Node.js、Express、React PWA(React 渐进式网络应用)。

——Nicolas (@necolas) February 8, 2017

这条极其神秘的推特留下了许多未解之谜。其中最重要的是,“之前这些流量在什么上运行?” Ghallagher 之后的推特解答了其中的一些谜团。

针对那些已登录的用户,“新的”网络协议栈其实已经投入应用有九个月了。未登录的用户其实由一个不同的网络协议栈提供服务,这个协议栈是由 Scala 和 Closure Templates 组成。由React 开发者们所认可的登录体验得到改善的时候会用回到新的协议栈。

新的浏览器UI 构建基于Node.js 和Express,Node.js 和Express 用于处理服务器端。该应用程序如同渐进式Web 应用 (Progressive Web App)被构建,渐进式Web 应用通过Service Workers 来支持即时页面加载、离线功能、消息推送等。目前的应用还不能支持所有这些特性,但是另一个Twitter 工程师Paul Armstrong 透露,Twitter 将很快支持这些新特性。

运行在服务器上的后端并不是React。Twitter 工程师 James Bellenger 提到,“后端服务没有使用 React 的render函数,并且几乎没有使用react-router”,他还补充道,“这个服务中最难的一项任务是对 json 进行解析”。在这些推特中,Bellenger 透露了这项服务是怎样工作的。对于初学者而言,它运行在当前Node.js 的长期支持版本上,并且使用 handlebars 而不是render函数

社区正在要求他们透露更多信息,比如,他们是如何应对处理站点的大量流量的。Stuart Langridge回复道,他想“看到一条(或者更多)的动态能解释这是怎么做到处理大量流量的,以及期间遇到的问题等等。”

Ryan Johnson 写了一篇对于 Twitter 的 Redux 存储的分析,其中有许多有趣的见解。在同 InfoQ 的谈话中,Johnson 谈到,看了 Twitter 的实现,给了他对于技术的信心:

我一直关心的一个问题是,对于 Redux,到底处理多少数据才算多,到底能处理多少数据?你能看到,当你滑动 Twitter 或者收到新的推特动态时,Twitter 会不断地处理数据。如果 Redux 能处理 Twitter 这么多的数据,我相信它能满足我的所有应用的需求。

新的网络协议栈在移动端的性能是非常出众的。Johnson 说到,“我发现移动端页面的流畅让人难以置信,在我看来,它能轻易取代原生应用。”

新的 Web 应用能通过以下网址访问: https://mobile.twitter.com

查看英文原文: https://www.infoq.com/news/2017/02/twitter-react-mobile-stack


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-23 18:002519

评论

发布
暂无评论
发现更多内容

JVM自定义类加载器在代码扩展性的实践

Java工程师

JVM 代码 类加载器 实践 #java

【面试-八股文】万字app测试 面试题,助你吊打面试官系列

测试猿温大大

面试 App 测试工程师 app测试

【面试-八股文】网络协议万字总结,助你吊打面试官系列

测试猿温大大

面试 TCP 网络协议 HTTP

Docker 配置国内加速镜像

信号量

Docker Linxu

Rust的迭代器

Shine

rust 迭代器

Apache DolphinScheduler&ShenYu(Incubating)联合 Meetup,暖春 3 月与你相约!

Apache DolphinScheduler

大数据 开源 工作流调度 Apache DolphinScheduler

【工具- selenium】selenium 入门级demo练习,包教包会

测试猿温大大

面试 测试工程师 selenium

2022年中国可穿戴医疗设备发展洞察

易观分析

可穿戴医疗设备

Flash退出历史舞台后,Web端3D会迎来怎样的发展?

Orillusion

WebGL 3D渲染 3D模型 Flash webgpu

【工具-jmeter】jmeter 入门级demo练习,包教包会

测试猿温大大

面试 Jmeter 测试工程师

【面试-薪资查询】查薪资大揭秘,一般人不告诉他

测试猿温大大

黑科技 互联网行业薪资

Linux运维技术之Linux云计算架构

学神来啦

Linux 架构 运维 linux云计算

国际自主智能机器人大赛强势来袭,NAACL同声传译任务等你来战

百度大脑

【模拟面试-4年实习】工作4年业务做的不深入,如何突破

测试猿温大大

面试 测试工程师

【面试-八股文】Linux高频面试题,助你吊打面试官系列

测试猿温大大

Linux 面试 测试工程师

【面试-如何谈薪资】万字总结 HR高频55问,让你涨薪30%

测试猿温大大

面试 薪资 HR

10年后,掌握 Rust 语言,是不是入行汽车软件的必要条件呢?

非凸科技

Apache DolphinScheduler&ShenYu(Incubating)联合 Meetup,暖春 3 月与你相约!

大数据 开源 工作流调度 Apache DolphinScheduler

网易数帆Curve加入PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里云 开源数据库 polarDB

如何用建木CI实现前端代码自动格式化

Jianmu

前端 代码管理 格式化 prettier 建木CI

好评不断的文化纪录片《中国》,背后的“剪刀手”竟是它?

百度大脑

2022最新IntellJ IDEA的mall开发部署文档

北极的大企鹅

开源 部署与维护 开发者, MAll

【面试-八股文】mysql 万字总结,助你吊打面试官

测试猿温大大

MySQL 面试

网易会议开源之桌面端篇

网易云信

开源

微博评论高性能高可用计算架构设计

Geek_36cc7c

Hoo虎符研究院 ∣ 投资前沿——STARKNET 生态一览 (2022.3.18)

区块链前沿News

虎符研究院

来了来了!MatrixOne技术架构详解来了!

MatrixOrigin

数据库 数据平台 MatrixOrigin MatrixOne 矩阵起源

【面试-项目篇】外包点工跳到甲方,薪资涨了30%

测试猿温大大

面试 涨薪 测试工程师 项目经验

低版本skywalking与LinkAgent不兼容怎么办?记一次详细的解决过程

TakinTalks稳定性社区

被动防御→积极防御,系统稳定性保障思路启发

TakinTalks稳定性社区

达观数据CTO 纪达麒:基于阿里云计算底座,打造智能办公机器人

阿里云弹性计算

机器人 神龙架构 智能办公

Twitter基于React的网络协议栈媲美原生性能_JavaScript_David Iffland_InfoQ精选文章