Angular.js: 考虑添加对被动事件侦听器的支持

创建于 2017-04-07  ·  4评论  ·  资料来源: angular/angular.js

我提交一个...

  • [x] 错误报告
  • [ ] 功能要求
  • [ ] 其他(请不要在此处提交支持请求(见上文))

当前行为:
向阻止滚动的“touchmove”事件添加了非被动事件侦听器。 考虑将事件处理程序标记为“被动”以使页面更具响应性。

预期/新行为:
被动事件侦听器是 DOM 规范中的一项新功能,它使开发人员能够通过消除滚动来阻止触摸和滚轮事件侦听器的需要来选择加入以提高滚动性能。 开发人员可以使用 {passive: true} 注释触摸和滚轮侦听器,以表明他们永远不会调用 preventDefault。 此功能在 Chrome 51、Firefox 49 中提供,并在 WebKit 中登陆。 有关完整的官方解释,请在此处阅读更多信息。

使用说明最小限度地再现问题:

角度版本: 1.6.4

浏览器: Chrome 59

还要别的吗:
http://stackoverflow.com/questions/39152877/consider-marking-event-handler-as-passive-to-make-the-page-more-responsive

misc core moderate won't fix inconvenient feature

最有用的评论

你好,谢谢你的建议。 这种行为在规范中(https://dom.spec.whatwg.org/#dictdef-eventlisteneroptions),但在 IE / Edge 和 Safari 中缺乏支持。 我假设我们可以在这里做一个例外,因为不支持它的浏览器会忽略选项对象,对吗?

所有4条评论

你好,谢谢你的建议。 这种行为在规范中(https://dom.spec.whatwg.org/#dictdef-eventlisteneroptions),但在 IE / Edge 和 Safari 中缺乏支持。 我假设我们可以在这里做一个例外,因为不支持它的浏览器会忽略选项对象,对吗?

你说的对!

该对象可能会被忽略,但对于不支持选项对象的浏览器,它将解析为一个真值,这会将useCapture设置为 true。

基于此评论https://github.com/angular/angular.js/pull/16026#issuecomment -305763416,这是可预见的未来的解决方案

此页面是否有帮助?
0 / 5 - 0 等级