写点什么

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:406989
用户头像

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

关注

评论

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

Redis - Cluster - 分布式存储

旺仔大菜包

redis

你公司里有不能碰的红线吗?

石云升

法律 职场经验 6月日更

JAVA 面向对象 (十五)-- 异常

加百利

Java 6月日更

我的企业安全观

I

安全架构 企业安全 组织架构 安全运营 安全协作

手写Spring,定义标记类型Aware接口,实现感知容器对象

小傅哥

Java spring 小傅哥 aware

技术实践:教你用Python搭建gRPC服务

华为云开发者联盟

Python gRPC 语言 移动应用开发 RPC框架

AQS知多少

卢卡多多

AQS 6月日更 锁分析

数据结构——链表

若尘

数据结构 链表 6月日更

记一次MySQL磁盘满了之后清理的过程

北游学Java

Java MySQL

架构实战营 - 群讨论汇总(2021)

华仔

#架构实战营

我去,这是出BUG了呀!

why技术

Java dubbo 后端

纯CSS实现随机翻牌效果之steps 妙用

devpoint

CSS css3 6月日更

做好项目管理,项目经理需要具备哪些优秀品质?

万事ONES

项目管理 研发管理 IT ONES 项目经理

项目经理的主要工作有哪些?

万事ONES

项目管理 研发管理 ONES

实战!使用Docker在线安装OnlyOffice

一个需求

Docker onlyoffice

Apache Dubbo 3.0.0 正式发布 - 全面拥抱云原生

阿里巴巴中间件

云计算 阿里云 开源 云原生 中间件

带你掌握C++中三种类成员初始化方式

华为云开发者联盟

c++ 初始化 类成员初始化 声明时初始化 初始化列表

带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式

华为云开发者联盟

设计模式 外观模式 代理模式 装饰模式 享元模式

☕️【Java技术之旅】【ConcurrentHashMap】深入浅出核心源码分析(JDK1.7版本)

洛神灬殇

Java 源码分析 ConcurrentHashMap 6月日更

字节跳动异构场景下的高可用建设实践

火山引擎开发者社区

架构 后端

Rust从0到1-函数式编程-闭包

rust 函数式编程 闭包 functional closures

[译] D8 优化: Assertions

Antway

6月日更

唐庄酒业的酒怎么样?不输茅台特有面子!

Geek_50a546

除了数据恢复,EasyRecovery还有这样的功能!

淋雨

文件恢复 Easyrecovery破解 硬盘数据恢复

唐庄酒业的酒怎么样?好的酱香酒就应该和它一样

Geek_50a546

Linux之more命令

入门小站

Linux

精致女孩的护牙小心机,藏在这瓶冰泉漱口水里

Geek_50a546

深度解读畅捷通云原生架构转型实战历程

阿里巴巴云原生

云原生

在线正则表达式测试,正则替换工具

入门小站

工具

项目管理复杂多变,如何成为一个好的项目经理?

万事ONES

项目管理 研发管理 ONES 开发管理

线性表、顺序表和链表,你还分不清?

华为云开发者联盟

数组 链表 指针 线性表 顺序表

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