写点什么

Google 最终决定让指针事件成为 Chrome 的主要事件类型

  • 2015-04-16
  • 本文字数:1520 字

    阅读完需:约 5 分钟

Google 决定让指针事件(Pointer Events)成为 Chrome 的主要事件类型,抛弃苹果,加入微软和 Firefox 的阵营。

去年,Chrome 和 Blink 输入团队负责人 Rick Byers 曾宣称 Blink/Chrome 不会实现指针事件(PE),尽管Google 很久之前就已加入相关工作组。Byers 提到了一系列原因,包括Apple 对于PE 的反对会影响它的普及程度、给标准16ms 帧预算带来大约2% 的性能损耗以及在滚动时无法处理事件。 Google 甚至把他们的 PE polyfill 库托管给 jQuery 基金会

但是“持续收到的反馈表示,web 开发者、框架作者和其他浏览器开发商认为指针事件对于平台来说具有很大价值”, Byers 最近宣布Chrome 将实现 PE,可以通过某个标记开启。 Chromium 官网的一个新issue 显示,PE 相关的工作已经开始。此外, Byers 和微软的 PE 团队已经就上文提到的性能问题进行讨论,这将涉及到一些 API 的改动。

我们就此事进一步的发展采访了 Byers。

InfoQ:请问你准备如何处理同时支持两种事件类型的设备?是否会像这个文档中建议的那样把所有的 TE(触摸事件)都转换成 PE?

RB:如果我们提供了对 PE 的支持,那么指针事件就会成为主要的事件类型。如果一个指针事件没有被处理,那它就可能会触发一个触摸和 / 或鼠标事件。幸运的是,我们从 IE 提高移动 web 兼容性中(通过支持触摸事件)学到了很多。我很赞同 IE 工程师们的设计,我们也准备在 Chrome 中采用类似的设计,一些特殊的地方除外(当然在具体实现的时候我们可能会修改一些细节)。

InfoQ:微软的 Jacob Rossi表示他愿意协助你修复 PE 中可能存在的问题,但是在 W3C 中 PE 的规范已经成为了最终标准,据我所知现在只能对其进行细微的调整。你准备怎么做?

RB:在收到一些重要的反馈之后,关于新版 PE 规范的工作已经启动,(Rossi 提到的)不过是向新版 PE 规范中再加入一件(显然更大的)事而已。确保改动能兼容现有代码确实是一项巨大的挑战,但是我相信我们可以在兼容性和解决问题之间做出某种合理的权衡。

InfoQ:请解释一下为什么“默认不捕获的触摸输入模型会影响引擎性能”?

RB:区别在于哪个 DOM 节点接收‘移动’事件。对于触摸,触摸 - 移动事件的目标节点总是收到触摸 - 开始事件的元素(这是“隐式捕获”)。对于鼠标和(默认的)指针事件,目标总是当前指针所指的元素。这意味着每次移动鼠标,浏览器都需要通过“命中测试”来确定当前指针指向的元素。由于 CSS 布局的复杂性,命中测试也很复杂,有时很难预测其性能。从浏览器引擎开发者的角度来说,如何减少每个“帧预算”的工作量是我们面临的最大的性能挑战。响应触摸移动事件时,浏览器和应用可以通过 16ms 一次的事件来保证流畅的 60fps 体验。但是,尽管命中测试(在简单的用例中)只占帧预算的大约 2%,这仍然是一个不可忽视的代价。我们认为这种代价不应当由平台承担,除非开发者们明确地表示他们需要“不捕获”行为。

现在许多网站的设计方式都是“触摸优先”,因为开发者们都意识到优秀的移动用户体验能够有效提高用户参与度。我认为所有新出现的输入 API 都应该考虑到这一点并优先考虑直接操作(捕获),从而满足现代的用户交互。

Google 计划在所有支持平台的 Chrome 中实现 PE,包括 Android 和 WebView。PE 也会在 Spartan/IE10、Firefox(需要通过 flag 开启)、jQuery 和 Dojo 中实现。Apple 是目前唯一一家反对PE 的主流浏览器开发商。

查看英文原文: Google Is Going to Make Pointer Events the Main Event Type in Chrome after All


感谢邵思华对本文的审校。

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

2015-04-16 08:543786

评论

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

ArgoDB携手国产操作系统完成兼容适配,构建数智新生态

星环科技

"芯库"共赢,ArgoDB携手国产处理器完成兼容适配,共筑数智安全根基

星环科技

直播回放&课件下载| 让AI真正读懂业务:多模态RAG知识平台建设思路

MatrixOrigin

分片键选错了,你的数据库分片就是"灾难现场"!

我爱娃哈哈😍

数据库 数据库分片 分片键

分布式事务在分片场景下,TCC和Seata到底怎么选?一线实战全解析!

我爱娃哈哈😍

分布式事务 分布式数据库

一文了解增量物化视图维护(IVM):原理、演化与实践落地

tapdata

实时数据平台 物化视图 增量物化视图 增量视图维护 IVM

远程开机教程:从关机到远控,贝锐向日葵一步到位!

科技热闻

远控软件对比:向日葵和UU远程谁更强?

科技热闻

打造“云上超算引擎”,天翼云E-HPC服务赋能福建农林大学科研提速!

天翼云开发者社区

科研 算力服务

存储之于AI,让算力真正释放价值。

ScaleFlux

NVMeSSD AI存储 MLPerf

【开课通知】 雅菲奥朗·SRE Practitioner 认证实战训练营

雅菲奥朗

SRE Practitioner认证

MiniMax 语音模型升级,跨语种复刻保留口音,多语种增至 40 个;FlowSpeech:书面语转口语 TTS 服务丨日报

声网

解码华为云安全“铁三角”:用“分层防御”化解安全挑战

Alter

云计算 AI 云安全

咕泡8.8品牌日 | AI革新力,品牌再升级

咕泡科技

人工智能 咕泡科技 咕泡8.8品牌日

如何基于动态关系进行ORM关联查询,并动态推断DTO?

node.js typescript ORM prisma Nest.js

2019年Q2/Q3机器学习研究奖获奖名单公布

qife122

机器学习 学术合作

2025最新版天猫图片搜索API全解析:从图像识别到商品匹配实战

tbapi

淘宝API 淘宝图片搜索接口 天猫API 天猫图片搜索接口

IT工单堆积如山?ManageEngine卓豪3步实现自动化处理

ServiceDesk_Plus

ManageEngine卓豪

解决企业管理难题,别小瞧了低代码

秃头小帅oi

将代码分析工具引入Jupyter Notebook的技术实践

qife122

机器学习 代码分析

“大模型”技术专栏 | 和鲸 AI Infra 架构总监朱天琦:大模型微调与蒸馏技术的全景分析与实践指南(下)

ModelWhale

AI 大模型微调 数据蒸馏

三张Excel表引发的效率革命,低代码让老工厂“玩转”数字化

伤感汤姆布利柏

🔥IoTOS v1.6.8 爆款配置 | 流量池运营 | 物联卡短信🔥🔥

开源物联卡管理平台-设备管理

5G 物联网 路由器 WiFi card 短信发送

合合信息智能审核白皮书上线,AI破解审核业务“数据孤岛”难题

合合技术团队

人工智能 大数据 算法

文本转语音技术突破:让计算机拥有自然语音

qife122

语音合成 文本转语音

除了腾讯会议,私有化有哪些选择?

BeeWorks

即时通讯 IM 私有化部署

告别微信办公,这款私有化企业聊天软件可能适合你!

BeeWorks

即时通讯 IM 私有化部署

3天落地企业级应用,JNPF+AI重塑开发效率

互联网工科生

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 零代码 无代码 版本更新

新客户 | 没拆 PI,成本却省了一半,这家钢铁企业是怎么做到的?

TDengine

tdengine 时序数据库 国产时序数据库

新媒体时代的舆情管理:你监测到情绪拐点了吗?

沃观Wovision

社交媒体 沃观Wovision 舆情监测系统 海外舆情监测

Google最终决定让指针事件成为Chrome的主要事件类型_Google_Abel Avram_InfoQ精选文章