Skip to main content

Bug Tracker

Side navigation

#10432 closed bug (patchwelcome)

Opened October 05, 2011 09:29PM UTC

Closed October 07, 2011 12:31AM UTC

Webkit browser update slowed down massively using a.hide(); b.filter(':visible')

Reported by: gavin@phrogz.net Owned by: dmethvin
Priority: undecided Milestone: None
Component: traversing Version: 1.6.4
Keywords: Cc:
Blocked by: Blocking:
Description

See http://phrogz.net/tmp/webkit-jquery-browser-update-slowdown.html and follow the instructions there.

In summary, there are two jQuery objects with distinct sets of elements, 'classes' (100 <p> elements) and 'methods' (1500 <p> elements). If I write the code:

    classes.filter(':visible');
    methods.hide();

then everything is fine. However, if I change the order of those two statements, the web browser takes 40-500x longer to update the page after the JS is complete.

This bug reproduces on Chrome and Safari, but not Firefox. As such, I've also filed this as a Webkit bug:

https://bugs.webkit.org/show_bug.cgi?id=69464

https://bugs.webkit.org/show_bug.cgi?id=69464

Attachments (0)
Change History (3)

Changed October 07, 2011 12:30AM UTC by dmethvin comment:1

owner: → dmethvin
status: newassigned

Changed October 07, 2011 12:31AM UTC by dmethvin comment:2

component: unfiledtraversing

I profiled it as well and the bottleneck doesn't appear to be inside a jQuery method. That points to an issue with Webkit, but of course this is a relatively pathological case given the number of elements being processed. If you find something we can change to fix the problem please let us know.

Changed October 07, 2011 12:31AM UTC by dmethvin comment:3

resolution: → patchwelcome
status: assignedclosed