Skip to main content

Search and Top Navigation

#5190 open feature ()

Opened February 17, 2010 01:54PM UTC

Last modified October 29, 2012 04:53AM UTC

Draggable: Performance problems due to css calculations

Reported by: sorcK Owned by:
Priority: minor Milestone: 2.0.0
Component: ui.draggable Version: 1.7.2
Keywords: Cc:
Blocked by: Blocking:

When having 200+ droppables it takes several seconds for a drag to start, and moving the draggable lags.

problem occured on ubuntu and windows vista,7 with firefox 3.5.7 , 3.6

using a highend pc

Attachments (0)
Change History (5)

Changed January 18, 2011 04:18PM UTC by adamffyl comment:1

I'm having the same problem in my ASP.NET application. It's fine in any other browser but in IE8 it takes 10+ seconds to load the page just because there are so many droppables in my table. Please provide help asap.

Changed November 11, 2011 08:07PM UTC by ghostd comment:2

It seems (according to quick researches with firebug profiler) that a lot of time is spent in getComputedStyle: because the render of nodes is modified in many ways (adding/removins classes and changing CSS position) and _create method call'.csc('position') to check the current node position.

A first (very little) optimization could be replace the following code (from '_create' draggable method)

	(this.options.addClasses && this.element.addClass("ui-draggable"));
	(this.options.disabled && this.element.addClass("ui-draggable-disabled"));


	var uiClasses = this.options.addClasses ? "ui-draggable" : "";
        uiClasses += this.options.disabled ? " ui-draggable-disabled" : "";
	(uiClasses.length && this.element.addClass(uiClasses));

Changed June 26, 2012 01:22AM UTC by scottgonzalez comment:3

type: enhancementfeature

Changed October 11, 2012 02:49PM UTC by scottgonzalez comment:4


Changed October 29, 2012 04:53AM UTC by mikesherov comment:5

component: ui.droppableui.draggable
status: newopen
summary: UI Droppable , UI Draggable: Performance problemsDraggable: Performance problems due to css calculations

This ticket in core will do lots to help: