把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

Proxx:构建高效的 Web 应用

作者:Guy Nesher

  • 2019-06-21
  • 本文字数:896 字

    阅读完需:约 3 分钟

Proxx:构建高效的Web应用

Proxx是谷歌 Chrome 团队推出的一款 JavaScript 游戏。该项目展示了如何开发快速平滑的 Web 应用,这些应用在多种平台和输入设备上提供了相近的用户体验。



Proxx 项目的独到之处在于它主要针对的是智能功能机。智能功能机是低价智能机替代设备,在印度和非洲广为使用。根据Counterpoint的市场研究报告,智能功能机在 2019 年至 2021 年期间的销量有望达到 3.7 亿部。


相对于智能机,智能功能机的硬件非常简单。它不支持触控,屏幕相对较小,大多采用 240x320 分辨率的 QVGA 屏,CPU 的处理能力也相对较弱。


这些硬件的局限性给 Web 开发人员提出了新的挑战。大多数开发人员并未习惯于针对如此受限的资源开发 Web 应用。


为解决智能功能机的性能受限问题,Proxx 项目使用了一种“Web Worker”技术。该技术支持以后台线程方式运行 JavaScript 代码。


Proxx 将游戏逻辑分散为多个独立线程,确保只有与用户界面相关的计算是在主线程中完成。这种设计确保了应用的平滑渲染,特别是在配备较差的设备上运行的时候。


Proxx 团队使用了 Canvas 和 WebGL 技术来渲染游戏。由此实现了两个独立的层,一层用于后台动画,一层用于显示表格。这种设计让后台可以使用规模更小的画布,降低内存消耗。


与游戏的交互是通过一个隐藏的 DOM 网格来处理的,该网格位于画布层之上。这种简化的事件处理机制让 Proxx 团队能够易于支持屏幕阅读器。


Proxx 团队选择使用Preact来管理 DOM 的渲染和交互。Preact 是 React 的一个更简洁的替代方案,它提供了近似于 React 的渲染 API,但体积只有 3KB。


Proxx 团队使用Puppeteer在服务器上预渲染初始屏幕,进一步改进了项目的加载时间。


最后,Proxx 团队使用了Rollup。Rollup 是一种 JavaScript 模块捆绑器,相较广为使用的 Webpack 库,Rollup 进行了一些优化。 具体地说,Rollup 可在主线程和 Web 工作线程间共享依赖项,避免代码重复加载。


Proxx 团队计划于今年晚些时候公布更多的开发进展。


如果开发人员现在有兴趣深入了解,可访问项目的网站,或是观看Google I/O大会Proxx演讲


Proxx 的源代码可在GitHub代码库上找到。Proxx 基于 Apache 2 开源许可。


查看英文原文: Proxx: Building Fast Web Applications


2019-06-21 09:407315
用户头像

发布了 391 篇内容, 共 156.9 次阅读, 收获喜欢 257 次。

关注

评论

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

译文 | A poor man's API

API7.ai 技术团队

API APISIX RESTful API

前端培训没有基础应该怎么学习

小谷哥

一线大厂为什么面试必问分布式?

钟奕礼

Java 程序员 java面试 java编程

火山引擎DataTester揭秘:字节如何用A/B测试,解决增长问题的?

字节跳动数据平台

大数据 AB testing实战 12 月 PK 榜

技术内幕 | 阿里云EMR StarRocks 极速数据湖分析

StarRocks

#数据库

国内主流商业智能BI工具剖析

流量猫猫头

大数据

大数据培训学习程序员还好找吗

小谷哥

【JUC】交换器Exchanger详解

JAVA旭阳

Java JUC

SEAL 0.3 正式发布:国内首个全链路软件供应链安全管理平台

SEAL安全

安全 全链路 软件供应链 SEAL

从React源码来学hooks是不是更香呢

goClient1992

React

手把手教你成为荣耀开发者:账户结算操作指南

荣耀开发者服务平台

android 开发者 手机 荣耀 honor

java培训怎么学习才好?

小谷哥

白嫖GitHub Pages,轻松搭建个人博客

LigaAI

Hexo GitHub Pages 个人博客 个人网站 12 月 PK 榜

解读数仓中的数据对象及相关关系

华为云开发者联盟

数据库 后端 华为云 数据对象 12 月 PK 榜

前端培训学习程序员如何提高解决问题的能力

小谷哥

一张「有想法」的表单,玩出线上填表新花样

爱科技的水月

iOS 查找字符串出现的范围

刿刀

ios swift

刘德华在线演唱会,火山引擎边缘云助力打造极致视频直播体验

火山引擎边缘云

云原生 边缘计算 节点 火山引擎边缘计算

【11.25-12.02】写作社区优秀技术博文回顾

InfoQ写作社区官方

热门活动

三翼鸟,用两年开启下一个十年

脑极体

从React源码角度看useCallback,useMemo,useContext

goClient1992

React

从React源码分析看useEffect

goClient1992

React

在一次又一次的失败中,我总结了这份万字的《MySQL性能调优笔记》

钟奕礼

Java 程序员 java面试 java编程

结合RocketMQ 源码,带你了解并发编程的三大神器

华为云开发者联盟

RocketMQ 开发 华为云 12 月 PK 榜

雾霾对户外LED显示屏的考验

Dylan

LED LED显示屏 户外LED显示屏

大数据培训程序员工作前景如何

小谷哥

星环科技数据中台解决方案,助力某政府机构建设新型智慧城市

星环科技

云原生应用的最小特权原则

HummerCloud

k8s rbac 云原生安全

编译器优化丨Cache优化

华为云开发者联盟

后端 开发 华为云 12 月 PK 榜

基于云原生的火山引擎边缘云应用与实践

火山引擎边缘云

分布式 云原生 边缘计算 节点 火山引擎边缘计算

BSN-DDC基础网络DDC SDK详细设计(七):数据解析

BSN研习社

BSN-DDC

Proxx:构建高效的Web应用_大前端_InfoQ精选文章