Hi Isomorphic,
Thank you for the fix.
It's really better in today's version.
FYI, we currently use gxt framework. The smartgwt grid is better (for out usage) so we replace the gxt grid by the smartgwt grid in our application. We can't quickly replace all gxt components by smartgwt components. It's probably what you call a legacy solution.
Again, thank you for the fix
Announcement
Collapse
No announcement yet.
X
-
We've committed a fix for this issue to SGWT/SC 12.0 and newer releases, which should be in today's nightly builds. (If there's no build today for a branch, it will be in the next nightly that is published.)
Note that the specific issue you reported only applied to relatively positioned components, which is an approach we recommend only for legacy situations. Furthermore, with respect to page "resize" event handlers in general, it's unlikely that the leak would cause an issue in the real world, as the stale handlers would have gotten removed the first time the browser got resized by the user.
Leave a comment:
-
When you report a problem, you need to include the exact version of SmartGWT that you're using, as per the FAQ.. An example of an exact version is "v12.0p_2019-07-22/EVAL Deployment".
Leave a comment:
-
Memory Leak in ListGrid.
Hi,
I expect that an event is never destroyed.
In Canvas.js this event is destroyed:
Code:this._resizeID = isc.Page.setEvent(this._$resize, this, isc.Page.FIRE_ONCE);
Code:canvasDestroyed : function (canvas) { .... if (canvas._resizeID) isc.Page.clearEvent(canvas._$resize, canvas._resizeID); ...
Code:isc.Page.setEvent( "resize", this, isc.Page.FIRE_ONCE, "_relativePageResized" );
Sample Code:
Code:private ListGrid lg = null; public static ListGridRecord createRecord(String name, String surname) { ListGridRecord record = new ListGridRecord(); record.setAttribute("Name", name); record.setAttribute("Surname", surname); return record; } public static ListGridRecord[] getRecords() { return new ListGridRecord[] { createRecord("Name1", "Surname1"), createRecord("Name2", "Surname2"), createRecord("Name3", "Surname3") }; } private ListGrid getListGrid() { final ListGrid grid = new ListGrid(); grid.setWidth(500); grid.setHeight(300); grid.setData(getRecords()); ListGridField nameField = new ListGridField("Name", "Name", 50); nameField.setCanEdit(true); ListGridField surnameField = new ListGridField("Surname", "Surname"); surnameField.setCanEdit(true); grid.setFields(nameField, surnameField); return grid; } @Override public void onModuleLoad() { final com.google.gwt.user.client.ui.VerticalPanel sp = new com.google.gwt.user.client.ui.VerticalPanel(); sp.setSize("100%", "100%"); com.google.gwt.user.client.ui.Button btn = new com.google.gwt.user.client.ui.Button("TEST"); sp.add(btn); btn.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { sp.remove(lg); lg.destroy(); lg = getListGrid(); sp.add(lg); } }); lg = getListGrid(); sp.add(lg); RootPanel.get().add(sp); }
Leak in google DevTools:
Is-it a smartGwt Bug or shall i call a function to free _eventRegistry?
Thanks for your help.
Mike.
Tags: None
Leave a comment: