速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:002649

评论

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

大白话70个你必须知道的AI重要概念(一)

FN0

人工智能 AI AIGC

全方位提升用户数字化体验的解决方案

观测云

用户体验

荣耀开发者大会 2023·一张图读懂应用分发分论坛

荣耀开发者服务平台

开发者大会 honor 分发与计算 应用市场

荣耀开发者大会2023 · 一张图读懂智慧人机交互分论坛

荣耀开发者服务平台

AI 交互 开发者大会 人机协作 honor

每日一题:LeetCode-179. 最大数

Geek_4z9ami

Go 面试 LeetCode 排序 排序算法

软件测试开发丨PageObject模式:为什么是Web自动化测试必备工具

测试人

软件测试

软件测试/测试开发/测试管理 | Page Object模式:为什么它是Web自动化测试的必备工具

测吧(北京)科技有限公司

测试

实现高效人力资源管理的完美搭档,聚道云与薪人薪事合作,助力企业数字化转型

聚道云软件连接器

案例分享

如何利用docker部署springboot 项目

想要飞的猪

聚合收益协议 InsFi :打开铭文赛道全新叙事的旋转门

股市老人

揭秘Spring事务失效场景分析与解决方案

EquatorCoco

数据库 spring 框架

Excel数据转换为一对多的工具类

alexgaoyh

Java Excel 一对多解析 exsyexcel 数据解析

程序员一定要知道的前端常用设计模式

不在线第一只蜗牛

前端 前端开发

数据库系列:InnoDB下实现高并发控制

快乐非自愿限量之名

数据库 高并发

Ronin Network 宣布与链上数据解决方案 Footprint Analytics 合作

Footprint Analytics

区块链 以太坊 加密货币

2024杭州国际智慧城市,人工智能,安防展览会(杭州智博会)

AIOTE智博会

智博会 物联网展 人工智能展 智慧城市展 杭州智博会

第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌

第七在线

官宣!OpenTiny 前端 Web 应用开发挑战赛开赛啦~30万奖金等你拿!

OpenTiny社区

开源 前端 低代码 组件库

荣耀开发者大会 2023·一张图读懂服务分发分论坛

荣耀开发者服务平台

行业趋势 开发者大会 智慧生活 honor 分发

ThreadLocal真的会造成内存泄漏吗?

不在线第一只蜗牛

内存泄露 ThreadLocal

大白话70个你必须知道的AI重要概念(二)

FN0

人工智能 AI AIGC

大白话70个你必须知道的AI重要概念(三)

FN0

人工智能 AI AIGC

腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索

腾讯云大数据

ES

创新逛展体验!实时云渲染助力2023天河区首届房博会元宇宙

3DCAT实时渲染

元宇宙解决方案 元宇宙线上展厅

「繁花」绽放,「她力量」引领AI新革命

Geek_2d6073

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