相关疑难解决方法(0)

什么是被动事件监听器?

在努力提高渐进式网络应用程序的性能的同时,我遇到了一个新功能Passive Event Listeners,我发现很难理解这个概念.

什么是Passive Event Listeners,什么是需要有它在我们的项目?

javascript google-chrome event-listener dom-events passive-event-listeners

151
推荐指数
1
解决办法
8万
查看次数

Chrome"触摸事件API"打破了滚动

我注意到,当在触摸屏PC上使用Chrome时,我的网络应用中的页面无法滚动.要测试修复问题,我转到chrome://flags并禁用"Touch Events API".相反,为了使问题出现在我的开发机器上,我启用它(默认为auto).

启用Touch Events API后,Chrome的控制台会输出:

[Violation]为滚动阻塞touchstart事件添加了非被动事件侦听器.考虑将事件处理程序标记为"被动"以使页面更具响应性.

[Violation]为滚动阻塞touchmove事件添加了非被动事件侦听器.考虑将事件处理程序标记为"被动"以使页面更具响应性.

此违规行为来自我的jquery.min.js档案.版本是2.1.3.

问题:

  1. 我不需要任何触摸功能 - 我可以禁用Touch Events API.和/或是最佳做法?
  2. 请问最新版本的jQuery'修复'这个问题吗?我很担心这么大的版本跳...
  3. 阅读违规建议,我应该"考虑将事件处理程序标记为'被动',以使页面更具响应性." - 那是什么意思?有一些JS函数影响窗口大小和滚动,我怎么能让它们被动?

jquery events google-chrome

8
推荐指数
1
解决办法
1361
查看次数

如何正确地抑制"需要自动模块的传递指令"警告?

将Maven项目升级到Java 9并添加模块描述符后,javac抱怨自动模块传递依赖:

[警告] /.../scrc/main/java/module-info.java:[3,35] requires transitive自动模块指令

module-info.java重现问题的一个例子:

module com.example.mymodule {
    exports com.example.mymodule.myexportedpackage;
    requires transitive com.google.common;
}
Run Code Online (Sandbox Code Playgroud)

这个警告的含义是完全清楚的,这里有一些相关的链接:

问题是 - 如何在不修复实际问题的情况下抑制此警告,并且不禁用所有其他javac警告?

我尝试了以下选项,但它们都没有奏效:

  • @SuppressWarnings("module")module-info.java
  • @SuppressWarnings("all")module-info.java
  • -Xlint:all,-module 命令行选项

不幸的是,我无法修复实际问题(现在),因为"my"模块具有来自第三方(自动)模块(例如Guava)的返回类型和注释.因此,如果我使用"require com.google.common"(不带transitive),则会有不同的警告,例如:

[WARNING] .../MyClass.java:[25,20] com.google.common.collect.Table模块中的类com.google.common不是间接导出的requires transitive

当然,我无法为第三方库定义模块描述符(现在是自动模块).

我正在使用-Werror我想保留的,所以警告不仅仅是烦人的......


PS我不打算将我的工件发布到任何公共存储库.

java javac java-9 java-module

8
推荐指数
2
解决办法
968
查看次数