首先让我说“代码不能使用”。相反,在可拖动的“停止”上,它确实可以找出最终结果的元素,并相应地采取行动。因此,关于“限制可丢弃元素数量”的网络无处不在的建议与此并不密切相关。
我测量的延迟是[从拖动开始的时间]到[jquery辅助项目的出现]。我不关心拖动速度,这不是很好但是没关系。
在一个装满了大量东西的DOM上,我可以看到从启动拖动到辅助项目出现的2-3秒延迟。
在装有一半这么多东西的DOM上,延迟降到1秒。
在一个装有少量内容的DOM上,没有明显的延迟。
所以延迟似乎与DOM大小非常相似。
请注意,我可以将其他对象添加到fat DOM中,并立即显示。因此,这不是“一般地将DOM添加到DOM中”的行为,而是缓慢的。
任何改善这种表现的线索都会有所帮助。 “在这一点上,把'可拖动的'代码扔掉并使用HTML5拖放”在我的名单上,相信我。但是我不想重构这个烂摊子,因为除了上面那些唠叨边缘的情况外,它目前运作得很好。
它可能会像迭代整个DOM一样,低效地寻找那些不存在的“可丢弃的”朋友吗?
如果是这样,有没有办法说服它没有朋友?
这是Chrome 59.0.3071.115(64位)。我并不关心让它在其他任何地方工作,因此跨浏览器问题并不重要。
****已解决。这个问题不是拖延的问题。添加任何jquery处理程序(通过$ mumble.on)在胖DOM上花费了很长时间。
添加非jquery处理程序所需的时间会少一些,但仍会造成很长的延迟。
添加CSS类也很慢并且会造成很长的延迟。
DOM太大了。