Side navigation
#3055 closed bug (duplicate)
Opened June 17, 2008 02:07PM UTC
Closed August 06, 2008 10:02PM UTC
IE leak prevention causes content loss
Reported by: | yaakov | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 1.3 |
Component: | event | Version: | 1.2.6 |
Keywords: | IE memory leak; back button | Cc: | |
Blocked by: | Blocking: |
Description
Short summary
- Interactively (by mouse clicks) add content to a page (with .after(content)).
- Go to another page (e.g. by following a link).
- Hit the back button to come back to the interactive page.
> Note: The dynamic changes are lost!
This bug is caused by code that prevents memory leaks in IE: when I
remove three lines from jQuery.js, the bug disappears.
Example
Note: all example code is attached to this bug report.
But you can also look at the live examples on the web.
- I have tested this with Firefox 3. I don't know whether it shows up with other browsers.
- open this page: http://www.yaakovnet.net/jQueryBug1/bug.html
- as instructed, click on the text "Click here!"
- ==> a note (click) should appear. You can click several times.
- now follow the link on the page .... and come back by using your back button.
- Note: the dynamically added (click) notes are gone! This is the bug!
Localizing the problem
The bug is caused by the following lines in jquery.js:
// Prevent memory leaks in IE // And prevent errors on refresh with events like mouseover in other browsers // Window isn't included so as not to unbind existing unload events jQuery(window).bind("unload", function() { jQuery("*").add(document).unbind(); });
I created a version jquery-modified.js where the last three lines are commented out.
As you can see, using this modified version fixes our problem:
- Go to: http://www.yaakovnet.net/jQueryBug1/fixed.html
- Follow the instructions above.
- ==> Note: the dynamically added text does *not* disappear.
Fixing the problem
Of course, disabling the three lines may cause memory leaks in IE.
- Maybe the call jQuery("*").add(document).unbind() is too general? Leaving some selected events bound may solve our problem without introducing (too many) IE leaks.
- Alternatively --- we should all switch to Firefox.
Attachments (4)
Change History (2)
Changed June 17, 2008 07:39PM UTC by comment:1
component: | core → event |
---|---|
priority: | major → minor |
Changed August 06, 2008 10:02PM UTC by comment:2
resolution: | → duplicate |
---|---|
status: | new → closed |
1.3 will do this much faster, that should be enough.
If the problem persist, do reopen or file a new ticket.
This removal won't be taken out. It's very common to remove all the bindings on window unload, so it's expected that a back action will face these problems.
Still, I'll leave this open for now.