0

首先,一些背景。我相当肯定这不是因为僵尸视图。我使用 requireJS 并且在任何给定时间我只有一个主视图实例。

此外,这种行为是随机的,我什至无法重现它一次,但我的几个用户指出了这一点并向我展示了一个视频,其中每次点击应用程序似乎都会触发处理程序两次。点击发生非常非常快。不可能是鼠标的机械故障,因为这个问题已经在多台机器上报告过了。这些报告来自具有快速互联网连接的人,这是值得的。

应用程序的两个实例是否可能同时运行?我可以采取任何步骤来隔离主干中的此类问题吗?

为文字墙道歉,如果我可以提供任何额外的信息或相关的来源,请告诉我。

编辑:我设法在 Opera 中重新创建了这个。在单步执行触发两次的部分代码之后(我正在检查打开模式的代码),我能够查看触发事件的视图。两个视图具有相同的 CID,所以这不能归因于 Zombie 视图,对吧?

4

2 回答 2

1

根据我的经验,这几乎总是与僵尸视图或其他 DOM 泄漏有关。在这种情况下,我最好的朋友是 Web Inspector Profiles -> Take Heap Snapshot 并寻找分离的 DOM 树(在搜索字段中输入“分离”)。

即使您认为您只是实例化一次视图,它也可能发生在棘手的情况下。

除此之外,您还必须向我们展示一些代码;)

于 2013-05-01T21:33:31.700 回答
0

这里的问题是我正在运行一个报告 JS 错误的第三方库。由于他们的错误,页面上的事件绑定受到了影响,这导致了应用程序内部的混乱。

故事的寓意——每当你遇到一个你觉得不可能的错误时,一一删除你的第三方依赖项,并确认问题是你的错。

于 2013-08-15T13:33:41.360 回答