Konva 动画和拖放在我的小米设备上超级慢

Konva animation and drag'n'drop are super slow on my Xiaomi device

我有一个用 Konva.js 编写的应用程序,它在我 13 岁的电脑和我妻子的 iPhone XR 上都运行得非常流畅 - 非常完美。但是每当我 运行 在我的小米红米 9 Pro 和我的旧款小米红米 Note 4X 上使用许多不同的浏览器(包括 Chrome、Opera 和 Firefox)时,它真的很慢。我有使用 Konva.Tween 和一些可拖动节点的动画,它们都运行得非常慢,FPS 似乎接近于零。

最奇怪的是,我试着在拖动开始前将可拖动节点移动到一个单独的层,但它根本没有加快拖动速度,一点也没有,至少在视觉上,我没有测量实际帧率。所以对我来说,我的 phone 在这里的表现似乎受到了限制,或者还有其他我看不到的东西。

可能导致问题的原因是什么?

首先,您应该 运行 在您的 phone 上查看性能配置文件,看看到底是什么地方慢了。 Konva代码执行?原生 2d canvas 渲染?浏览器布局有效?

也尝试使用 Konva.pixelRatio 属性 https://konvajs.org/docs/performance/All_Performance_Tips.html.

Konva.pixelRatio = 1;

图像在 HPDI 设备上可能会模糊,但可能已经足够好了。可能默认像素比太高了。您可以尝试不同的值,例如 11.5.