Side navigation
#3968 closed bug (worksforme)
Opened January 23, 2009 12:15AM UTC
Closed November 07, 2010 09:27PM UTC
ID-based lookup much slower on large pages
Reported by: | C.Johnson | Owned by: | john |
---|---|---|---|
Priority: | major | Milestone: | 1.3.2 |
Component: | selector | Version: | 1.3.1 |
Keywords: | getElementById, performance | Cc: | |
Blocked by: | Blocking: |
Description
In the Ajax-based commenting system at my site, when a user clicks a button to show any recently posted comments, part of the information that's returned from the Ajax call (in JSON form) is an array of objects that describes any recently edited or deleted comments that are already on the page. The Ajax callback function walks through this array and uses the ID attributes of modified comments to find them on the page and update their HTML accordingly.
Here's the code that performs this function:
for (var i = 0; i < delarray.length; i++) {
var dnum = $('#'+delarray[i].id).find('.cnum a:first-child').html();
$('#'+delarray[i].id).html(delarray[i].c).find('.cnum a:first-child').html(dnum);
}
The problem is that in version 1.3 and 1.3.1, this code executes <em>much</em> more slowly than it did in version 1.2.6, causing script timeout alerts in both IE6 and 7, and in Firefox. (In Safari it seems fine.)
The pages where the problem shows up contain a lot of comments, 500+ in many cases. But version 1.2.6 was imperceptibly fast, whereas 1.3.1 takes many seconds to get through the same loop, even if it only executes a few times.
Here's a page where you can see this slowdown, with the unminified version 1.3.1 installed on it; scroll to the bottom and click the 'new comments' button right above the comment submission form. In IE 6 or 7, you should have a long wait followed by the "script running too slowly" alert.
http://littlegreenfootballs.com/weblog/weblogx.php?entry=32524
Attachments (0)
Change History (4)
Changed February 15, 2009 04:28PM UTC by comment:1
Changed February 18, 2009 02:46AM UTC by comment:2
resolution: | → invalid |
---|---|
status: | new → closed |
Sounds like this was resolved for them in 1.3.1:
http://littlegreenfootballs.com/article/32525_Tech_Note-_JQuery_1.3.1/comments/
Changed February 22, 2009 06:40PM UTC by comment:3
resolution: | invalid |
---|---|
status: | closed → reopened |
Unfortunately, it's not resolved.
(Sorry about the test page not working, but the comment system disables new comments after 7 days.)
Here's another test page on which you can see the problem, with version 1.3.2:
http://littlegreenfootballs.com/weblog/weblogx.php?entry=32855
Compare to the same page, using 1.2.6:
Changed November 07, 2010 09:27PM UTC by comment:4
resolution: | → worksforme |
---|---|
status: | reopened → closed |
1.4 includes a shortcut for ID lookups, so this should no longer be an issue.
Hi, can you post a test case that will stay up for a while? I took a quick look when the ticket was created, but now the test page has the "new comments" button disabled.