This topic contains 2 replies, has 3 voices, and was last updated by jdh 6 years, 9 months ago.
Viewing 3 posts - 1 through 3 (of 3 total)
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic.
jQuery UI Widgets › Forums › Grid › jqwidget grid update performance issue
Tagged: grid, jqwidget, performance, update
This topic contains 2 replies, has 3 voices, and was last updated by jdh 6 years, 9 months ago.
Hi,
In our project we are using jq widget grid add,update and delete operation use of following methods addrow, updaterow and deleterow.
we have a signalR call to update the web UI so multiple call will do the add or update operations frequently. some point of time
web UI is getting hang because when we updating the grid row internally jq widget is redrawing and rendering all rows of the grid. So I have updated beginupdate and resumeupdate methods before and after the updaterow. After that it is working fine but some point of time jq widget can’t handle the frequent row update even I have used beginupdate and resumeupdate methods.
Could you please tell me the fastest way to update only the desired rows without rendering the complete grid?
Hi hemachandran,
“beginupdate” before calling multiple times updaterow and “endupdate” after that. That’s how it should be done. Other option is to use “updatebounddata” method to refresh the Grid’s data if you use the same data source or set its “source” property to a new dataAdapter instance. These will re-render the Grid, too, because the data has changed.
Best Regards,
Peter Stoev
jQWidgets Team
http://www.jqwidgets.com/
This “beginupdate” and “endupdate” definitely helped, but for updating a single field on about 40 rows, it still taking around 500ms.
Instead, if I just get a pointer to the row and change properties, it takes about 2ms for the batch, even without begin/endupdate:
rowsToUpdate.forEach((rowIndex: number) => {
let row = this.myGrid.getrowdata(rowIndex); //since getrowdata returns an object, we're just creating a pointer, not a copy
row.myField = myFieldsNewValue;
});
You must be logged in to reply to this topic.