SmartClient Pro v11
We have a fairly beefy TreeGrid that probably lists 20 pages of data in total, with maybe a dozen levels deep.
We have a button for the user to click that will use exportContent() to send that canvas back to the server and create a PDF file.
It seems that when the grid content that is open and expanded gets beyond a certain size, the length of time it takes to accomplish this gets exponentially longer. Whatever is taking all of this time happens on the client side. I can watch the Firebug network window and see that once the request happens, it goes pretty quickly. But in the browser, it bogs down and if the size of the tree is big enough, it simply either hangs up the browser and Windows asks me if I want to kill it, or it may time out and do nothing.
Can someone tell me what's going on here? Is there something I can check for on the client side to cut down on the processing time?
Here's a code snippet where the grid is created, and the export button is added:
We have a fairly beefy TreeGrid that probably lists 20 pages of data in total, with maybe a dozen levels deep.
We have a button for the user to click that will use exportContent() to send that canvas back to the server and create a PDF file.
It seems that when the grid content that is open and expanded gets beyond a certain size, the length of time it takes to accomplish this gets exponentially longer. Whatever is taking all of this time happens on the client side. I can watch the Firebug network window and see that once the request happens, it goes pretty quickly. But in the browser, it bogs down and if the size of the tree is big enough, it simply either hangs up the browser and Windows asks me if I want to kill it, or it may time out and do nothing.
Can someone tell me what's going on here? Is there something I can check for on the client side to cut down on the processing time?
Here's a code snippet where the grid is created, and the export button is added:
Code:
this.surveyGrid = isc.TreeGrid.create({ width: "100%", height: "*", showHeader: false, showConnectors: true, showFullConnectors: true, dataSource: this.getDataSource(), autoFetchData: true, sortField: "DispOrder", loadDataOnDemand: false, dataArrived: function() { this.getData().openAll(); }, wrapCells: true, fixedRecordHeights: false, fields: [ { name: "Name", title: "Survey Item", width: "*", formatCellValue: function(value,record) { value = stripHTML(value); if (that.showAnsAttributes && record.AnswerInfo && record.AnswerInfo != "" && record.ItemType == "SA") { value += ' <span class="AI" style="color: #ff0000;">' + record.AnswerInfo + "</span>"; } if (record.ItemType == "SQ") { if (that.showAnsAttributes) { value = value.replace("^|^",' <span class="AI" style="color: #ff0000;">' + record.AnswerInfo + "</span> "); } else { value = value.replace("^|^",""); } } return value; } } ], getIcon: function(node) { return null; }, recordCustomStyleProperty: "ItemType" }); this.exportButton = isc.IButton.create({ autoDraw: false, title:"PDF / Print", click:function () { var settings = { skinName: "Enterprise", pdfName: "Survey" + "_" + that.surveyDefId // without .pdf }; isc.RPCManager.exportContent(that.view, settings); } });
Comment