2009-08-21 47 views
0

我有一个关于性能的问题。当我在可拖动的元素上调用可拖动(具有所有相同的选项)时,会有性能损失吗?jQuery UI - 在多个可拖动的表现上会有损失?

我有对话泡泡这是拖累容器(比如漫画)拖动。这些气泡也droppables,因为你可以选择哪种泡沫的(讲,愤怒,思维等),它是通过降低它们相应的图标。这一切对于一个案例都有很好的期望。当我添加一个新的Bubble时,这个新的Bubble不会被我在初始阶段开始的可拖动调用覆盖。我自然必须做的是重新绑定。现在是我问自己这个问题的部分。解除绑定所有的泡沫,然后再重新申请可放开对象(通过简单地回顾了气泡的初始化函数)不会做任何好事,因为它失去了可拖动标签。所以我问自己,是否可以简单地重做一个可拖动的,而不会由于双重绑定相同的函数而失去性能。

我无法真正地测试它,因为我在21“iMac上开发,这比计算机要快,这个Web应用程序将用于(性能可能会成为问题的教育,例如小学)。

编辑:实际的问题是,如果我定义已经是投掷的元素上一个新的可放开,将只更改的选项或将其应用于一个全新的拖拽和双击将其绑定的问题听起来不可思议,但?应用程序已经有2k + jQuery + jQueryUI代码白衣很多拖动&拖放功能,我不能使用unbind light-headed。

EDIT_2:我还没有考虑过销毁函数n的jQueryUI。可以尝试一个。

回答

1

大部分jQuery用户界面的使用相同的通用格式为破坏的绑定和设置完成后,或改变的选项后设置。

jQuery UI/Draggable

销毁拖动:

$("#bubble1").draggable('destroy'); 

更改选项:

$("#bubble1").draggable('option', 'scope', 'someNewValue'); 

不能确定您的问题是领导,如果你创建一个新的泡沫,我觉得 - 您只需将新泡泡设置为可用泡泡,然后更改旧泡泡的选项。

至于性能也越高,我想认为,如果你先摧毁旧的实例,然后将其备份,或者只是改变在拖拽选项任何性能从“双结合”可避免命中。

+0

这就是我所需要的。没有考虑到,因为我从来没有需要它,直到现在。 – Mike 2009-08-21 09:19:49