0

我正在开发一个具有动力学的网络应用程序。我有不同的“视图”每个视图都包含多个图层。每个分层包含图像/组/形状,但主要是图像。

当显示一个视图时,另一个视图将被隐藏(显然),并且显示的视图被构建(图像被创建并添加到分配的图层)如果尚未完成,以防止在网络开始时出现大量绘图-应用程序

+查看
| + 层
| | + 形状
| | + ..
| + 层
| + ...
...

随着我的项目的增长,我注意到在视图之间切换时会出现延迟。于是我开始寻找...

我想'也许大量图像会导致画布滞后',所以我用放置在 DOM 中的图像(带背景的 div)替换了不需要在画布上的图像。

使用这两种方法都会有一个 moueUp 事件导致 200 毫秒的延迟!动力学中对代码的引用指向了这个方法:

Kinetic.DD._endDrag = function (evt){ ... }

在单击的对象上未设置导致视图更改的拖动事件

当查看完整的动力学测试用例时,还有另一个事件;mouseMove 会导致 300 毫秒的延迟!kintec 中对代码的引用将我指向这部分:

that.content.addEventListener 
inside 
_bindContentEvents: function ()

评论说:

/**
* begin listening for events by adding event handlers
* to the container
*/

这些函数内部发生了什么?没什么,它只是闲置......这可以通过创建配置文件来证明改变视图的时间。95% 的 CPU 时间都花在了空闲上……

我被卡住了如何摆脱这种滞后,这使我的网络应用程序变得敏捷!(这是在桌面上,它也需要在移动设备(标签)上执行!!

4

0 回答 0