PDA

View Full Version : Editable Grids slow to render in ie8



pturley
24 Oct 2012, 9:00 AM
Hi,

I am developing an application where a single screen may have up to four editable grids. When I run these screens in ie8 the response time can be anything between 2 and 10 seconds. If I run the same screen in firefox or chrome the response times are between 1 and 2 seconds.

I have attached an example of the code that we are developing and wonder if anyone could see if there is anything I am doing wrong to cause such a performance issue in ie. Just for the example I have rendered the same grid four times to you can get the idea.

This is my simple html file



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>t7210</title>

<link rel="stylesheet" type="text/css" href="http://localhost:8080/dev/extjs_4_1/css/ext-all.css"/>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/dev/extjs_4_1/ux/css/CheckHeader.css" />
<link rel="stylesheet" type="text/css" href="http://localhost:8080/dev/extjs_4_1/examples.css" />

<script type="text/javascript" src="http://localhost:8080/dev/extjs_4_1/js/ext-all.js"></script>

<script type="text/javascript">
document.write('ExtJS: '+Ext.versions.extjs.version);
</script>

<script type="text/javascript" src="http://localhost:8080/dev/extjs/pt/TaskContributor.js"></script>

<script>

Ext.Loader.setConfig({
enabled : true
});
Ext.Loader.setPath('Ext.ux', 'http://localhost:8080/dev/extjs_4_1/ux/');

Ext.require([
'Ext.ux.CheckColumn',
'Ext.ux.RowExpander',
'Ext.ux.form.SearchField'
]);
//build_task_contributor_grid(123);
//build_task_progress_grid(123);
// build_task_review_grid(123);
// build_task_contact_grid(123);

</script>
</head>
<body>
<style>
#TASK_CONTRIBUTOR-grid{ width: 600; border: 3px; float: left;}
</style>
<div id="TASK_CONTRIBUTOR-grid"></div>
</body>
<script>
Ext.onReady(function () {
console.log('Call Task Contributor '+Date());
build_task_contributor_grid(513);
console.log('End Call Task Contributor '+Date());
});
</script>
</html>


This is the javascript file it is calling which includes some dummy functions used by the store.



function get_url_filterdata(){

}

function dateFormatRenderer(value) {
if (typeof value == 'string'){
return value;
}else{
return value ? Ext.Date.dateFormat(value, 'd/m/Y') : '';
}
}

function build_task_contributor_grid(pId) {

//Ext.onReady(function () {
console.log('Define Model '+Date());
// Define our data model
Ext.define('TASK_CONTRIBUTOR', {
extend : 'Ext.data.Model',
fields : ['CONTRIBUTOR_ID','TASK_ID','SERVICE_ID','CONTEXT','CONTEXT_ID','CONTEXT_X_ID','START_DATE','END_DATE','ROLE','MD5']
});

console.log('Define Store '+Date());
//Define the data store
TaskContributorStore = Ext.create('Ext.data.Store', {
// destroy the store if the grid is destroyed
autoDestroy : false,
model : 'TASK_CONTRIBUTOR',
remoteSort : true,
pageSize : 10,
storeid : 'TASK_CONTRIBUTOR',
proxy : {
type : 'ajax',
url : get_url_filterdata,
extraParams : {
x01 : 'TASK_CONTRIBUTOR',
x05 : 'TASK_ID = ' + pId
},
pageParam : undefined,
startParam : 'x02',
limitParam : 'x03',
filterParam : 'x04',
noCache : false,
reader : {
type : 'json',
root : 'ROWSET',
totalProperty : 'totalcount'
}
}
});

console.log('Define Grid Edit '+Date());
Ext.define('GridRowEditing', {
extend: 'Ext.grid.plugin.RowEditing',
alias: ['plugin.GridRowEditing'],
requires: [
'Ext.grid.RowEditor'
],
clicksToMoveEditor : 1,
autoCancel : false,
listeners : {
'edit' : function (editor, e) {

var grid = e.grid;
var record = e.record;
var statusMsg = 'Status';

//e.grid.store.storeid holds the context name!
gMsg = update_record(e.grid.store.storeid, record.data);
gMsg = jQuery.parseJSON(gMsg);
//set back record the MD5 as this would have changed during the update
for(i=0; i<gMsg.length; i++)
{
//e.record.set(gMsg[i].ITEM_NAME, gMsg[i].ITEM_MSG);
if(gMsg[i].ITEM_NAME == 'MD5')
{
e.record.set(gMsg[i].ITEM_NAME, gMsg[i].ITEM_MSG);
}
if(gMsg[i].ITEM_NAME == 'CVW_PAGE_LEVEL')
{
statusMsg = gMsg[i].ITEM_MSG;
}
}
Ext.MessageBox.alert('Status', statusMsg);//gMsg[0].ITEM_MSG);
e.record.commit();
}
}
});

// Define the Grid Editor

var TaskContributorrowEditing = Ext.create('GridRowEditing');


console.log('Build Grid 1 '+Date());
//create the grid and specify what fields we want
var TaskContributor1 = Ext.create('Ext.grid.Panel', {
store : TaskContributorStore,
autoDestroy : false,
minHeight : 300,
width : 600,
title : 'Task Contributors',
frame : true,
columns : [{
header: 'CONTRIBUTOR_ID',
dataIndex: 'CONTRIBUTOR_ID',
flex: 1,
hidden: true
},{
header: 'TASK_ID',
dataIndex: 'TASK_ID',
flex: 1,
hidden: true
},{
header: 'SERVICE_ID',
dataIndex: 'SERVICE_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT',
dataIndex: 'CONTEXT',
flex: 1,
hidden: true
},{
header: 'CONTEXT_ID',
dataIndex: 'CONTEXT_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT_X_ID',
dataIndex: 'CONTEXT_X_ID',
flex: 1,
hidden: true
},{
header : 'Start Date',
dataIndex : 'START_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
allowBlank : false,
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!',
maxValue : Ext.Date.format(new Date(), 'd/m/Y')
}
},{
header : 'End Date',
dataIndex : 'END_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!'
}
},{
header: 'Role',
dataIndex: 'ROLE',
flex: 1,
editor: {
id : 'editROLE',
xtype : 'textfield',
maxLength : 8,
allowBlank : false
}
},{
header: 'MD5',
dataIndex: 'MD5',
flex: 1,
hidden: true
}],
renderTo : 'TASK_CONTRIBUTOR-grid',
dockedItems : [{
dock : 'top',
xtype : 'toolbar',
items : [{
width : 200,
fieldLabel : 'Search',
labelWidth : 50,
xtype : 'searchfield',
store : TaskContributorStore
}, '->', {
xtype : 'component',
itemId : 'status',
tpl : 'Matching threads: {count}',
style : 'margin-right:5px'
}
]
}
],
tbar : [{
text : 'Add Task Contributor Details',
iconCls : 'TASK_CONTRIBUTOR-add',
handler : function () {
TaskContributorrowEditing.cancelEdit();

// Create a record instance through the ModelManager
var r = Ext.ModelManager.create({
CONTRIBUTOR_ID : ''
,TASK_ID : ''
,SERVICE_ID : ''
,CONTEXT : ''
,CONTEXT_ID : ''
,CONTEXT_X_ID : ''
,START_DATE : ''
,END_DATE : ''
,ROLE : ''
,MD5 : ''
}
, 'TASK_CONTRIBUTOR');

TaskContributorStore.insert(0, r);
TaskContributorrowEditing.startEdit(0, 0);
}
}, {
itemId : 'removeTASK_CONTRIBUTOR',
text : 'Remove Task Contributor',
iconCls : 'TASK_CONTRIBUTOR-remove',
handler : function () {
var sm = grid.getSelectionModel();
var rec = grid.getSelectionModel().getSelection();
//call the delete record function
//delete_record('TASK_CONTRIBUTOR',rec[0].data);
TaskProgressrowEditing.cancelEdit();
TaskProgressStore.remove(sm.getSelection());
sm.select(0);
},
disabled : true
}
],
plugins : [TaskContributorrowEditing],
bbar : Ext.create('Ext.PagingToolbar', {
store : TaskContributorStore,
displayInfo : true,
displayMsg : 'Displaying <b>{0} - {1} of {2}</b>',
emptyMsg : "No Task Contributors to display"
}),
listeners : {
'selectionchange' : function (view, records) {
grid.down('#removeTASK_CONTRIBUTOR').setDisabled(!records.length);
}
}

});
//TaskContributorStore.loadPage(1);

console.log('Build Grid 2 '+Date());

var TaskContributor2 = Ext.create('Ext.grid.Panel', {
store : TaskContributorStore,
autoDestroy : false,
minHeight : 300,
width : 600,
title : 'Task Contributors',
frame : true,
columns : [{
header: 'CONTRIBUTOR_ID',
dataIndex: 'CONTRIBUTOR_ID',
flex: 1,
hidden: true
},{
header: 'TASK_ID',
dataIndex: 'TASK_ID',
flex: 1,
hidden: true
},{
header: 'SERVICE_ID',
dataIndex: 'SERVICE_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT',
dataIndex: 'CONTEXT',
flex: 1,
hidden: true
},{
header: 'CONTEXT_ID',
dataIndex: 'CONTEXT_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT_X_ID',
dataIndex: 'CONTEXT_X_ID',
flex: 1,
hidden: true
},{
header : 'Start Date',
dataIndex : 'START_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
allowBlank : false,
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!',
maxValue : Ext.Date.format(new Date(), 'd/m/Y')
}
},{
header : 'End Date',
dataIndex : 'END_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!'
}
},{
header: 'Role',
dataIndex: 'ROLE',
flex: 1,
editor: {
id : 'editROLE',
xtype : 'textfield',
maxLength : 8,
allowBlank : false
}
},{
header: 'MD5',
dataIndex: 'MD5',
flex: 1,
hidden: true
}],
renderTo : 'TASK_CONTRIBUTOR-grid',
dockedItems : [{
dock : 'top',
xtype : 'toolbar',
items : [{
width : 200,
fieldLabel : 'Search',
labelWidth : 50,
xtype : 'searchfield',
store : TaskContributorStore
}, '->', {
xtype : 'component',
itemId : 'status',
tpl : 'Matching threads: {count}',
style : 'margin-right:5px'
}
]
}
],
tbar : [{
text : 'Add Task Contributor Details',
iconCls : 'TASK_CONTRIBUTOR-add',
handler : function () {
TaskContributorrowEditing.cancelEdit();

// Create a record instance through the ModelManager
var r = Ext.ModelManager.create({
CONTRIBUTOR_ID : ''
,TASK_ID : ''
,SERVICE_ID : ''
,CONTEXT : ''
,CONTEXT_ID : ''
,CONTEXT_X_ID : ''
,START_DATE : ''
,END_DATE : ''
,ROLE : ''
,MD5 : ''
}
, 'TASK_CONTRIBUTOR');

TaskContributorStore.insert(0, r);
TaskContributorrowEditing.startEdit(0, 0);
}
}, {
itemId : 'removeTASK_CONTRIBUTOR',
text : 'Remove Task Contributor',
iconCls : 'TASK_CONTRIBUTOR-remove',
handler : function () {
var sm = grid.getSelectionModel();
var rec = grid.getSelectionModel().getSelection();
//call the delete record function
//delete_record('TASK_CONTRIBUTOR',rec[0].data);
TaskProgressrowEditing.cancelEdit();
TaskProgressStore.remove(sm.getSelection());
sm.select(0);
},
disabled : true
}
],
plugins : [TaskContributorrowEditing],
bbar : Ext.create('Ext.PagingToolbar', {
store : TaskContributorStore,
displayInfo : true,
displayMsg : 'Displaying <b>{0} - {1} of {2}</b>',
emptyMsg : "No Task Contributors to display"
}),
listeners : {
'selectionchange' : function (view, records) {
grid.down('#removeTASK_CONTRIBUTOR').setDisabled(!records.length);
}
}

});

console.log('Build Grid 3 '+Date());

var TaskContributor3 = Ext.create('Ext.grid.Panel', {
store : TaskContributorStore,
autoDestroy : false,
minHeight : 300,
width : 600,
title : 'Task Contributors',
frame : true,
columns : [{
header: 'CONTRIBUTOR_ID',
dataIndex: 'CONTRIBUTOR_ID',
flex: 1,
hidden: true
},{
header: 'TASK_ID',
dataIndex: 'TASK_ID',
flex: 1,
hidden: true
},{
header: 'SERVICE_ID',
dataIndex: 'SERVICE_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT',
dataIndex: 'CONTEXT',
flex: 1,
hidden: true
},{
header: 'CONTEXT_ID',
dataIndex: 'CONTEXT_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT_X_ID',
dataIndex: 'CONTEXT_X_ID',
flex: 1,
hidden: true
},{
header : 'Start Date',
dataIndex : 'START_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
allowBlank : false,
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!',
maxValue : Ext.Date.format(new Date(), 'd/m/Y')
}
},{
header : 'End Date',
dataIndex : 'END_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!'
}
},{
header: 'Role',
dataIndex: 'ROLE',
flex: 1,
editor: {
id : 'editROLE',
xtype : 'textfield',
maxLength : 8,
allowBlank : false
}
},{
header: 'MD5',
dataIndex: 'MD5',
flex: 1,
hidden: true
}],
renderTo : 'TASK_CONTRIBUTOR-grid',
dockedItems : [{
dock : 'top',
xtype : 'toolbar',
items : [{
width : 200,
fieldLabel : 'Search',
labelWidth : 50,
xtype : 'searchfield',
store : TaskContributorStore
}, '->', {
xtype : 'component',
itemId : 'status',
tpl : 'Matching threads: {count}',
style : 'margin-right:5px'
}
]
}
],
tbar : [{
text : 'Add Task Contributor Details',
iconCls : 'TASK_CONTRIBUTOR-add',
handler : function () {
TaskContributorrowEditing.cancelEdit();

// Create a record instance through the ModelManager
var r = Ext.ModelManager.create({
CONTRIBUTOR_ID : ''
,TASK_ID : ''
,SERVICE_ID : ''
,CONTEXT : ''
,CONTEXT_ID : ''
,CONTEXT_X_ID : ''
,START_DATE : ''
,END_DATE : ''
,ROLE : ''
,MD5 : ''
}
, 'TASK_CONTRIBUTOR');

TaskContributorStore.insert(0, r);
TaskContributorrowEditing.startEdit(0, 0);
}
}, {
itemId : 'removeTASK_CONTRIBUTOR',
text : 'Remove Task Contributor',
iconCls : 'TASK_CONTRIBUTOR-remove',
handler : function () {
var sm = grid.getSelectionModel();
var rec = grid.getSelectionModel().getSelection();
//call the delete record function
//delete_record('TASK_CONTRIBUTOR',rec[0].data);
TaskProgressrowEditing.cancelEdit();
TaskProgressStore.remove(sm.getSelection());
sm.select(0);
},
disabled : true
}
],
plugins : [TaskContributorrowEditing],
bbar : Ext.create('Ext.PagingToolbar', {
store : TaskContributorStore,
displayInfo : true,
displayMsg : 'Displaying <b>{0} - {1} of {2}</b>',
emptyMsg : "No Task Contributors to display"
}),
listeners : {
'selectionchange' : function (view, records) {
grid.down('#removeTASK_CONTRIBUTOR').setDisabled(!records.length);
}
}

});
console.log('Build Grid 4 '+Date());
var TaskContributor4 = Ext.create('Ext.grid.Panel', {
store : TaskContributorStore,
autoDestroy : false,
minHeight : 300,
width : 600,
title : 'Task Contributors',
frame : true,
columns : [{
header: 'CONTRIBUTOR_ID',
dataIndex: 'CONTRIBUTOR_ID',
flex: 1,
hidden: true
},{
header: 'TASK_ID',
dataIndex: 'TASK_ID',
flex: 1,
hidden: true
},{
header: 'SERVICE_ID',
dataIndex: 'SERVICE_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT',
dataIndex: 'CONTEXT',
flex: 1,
hidden: true
},{
header: 'CONTEXT_ID',
dataIndex: 'CONTEXT_ID',
flex: 1,
hidden: true
},{
header: 'CONTEXT_X_ID',
dataIndex: 'CONTEXT_X_ID',
flex: 1,
hidden: true
},{
header : 'Start Date',
dataIndex : 'START_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
allowBlank : false,
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!',
maxValue : Ext.Date.format(new Date(), 'd/m/Y')
}
},{
header : 'End Date',
dataIndex : 'END_DATE',
width : 90,
minValue : '01/01/2001',
format : 'd/m/Y',
renderer : dateFormatRenderer,
field : {
xtype : 'datefield',
format : 'd/m/Y',
minValue : '01/01/2001',
minText : 'Start date cannot be before today!'
}
},{
header: 'Role',
dataIndex: 'ROLE',
flex: 1,
editor: {
id : 'editROLE',
xtype : 'textfield',
maxLength : 8,
allowBlank : false
}
},{
header: 'MD5',
dataIndex: 'MD5',
flex: 1,
hidden: true
}],
renderTo : 'TASK_CONTRIBUTOR-grid',
dockedItems : [{
dock : 'top',
xtype : 'toolbar',
items : [{
width : 200,
fieldLabel : 'Search',
labelWidth : 50,
xtype : 'searchfield',
store : TaskContributorStore
}, '->', {
xtype : 'component',
itemId : 'status',
tpl : 'Matching threads: {count}',
style : 'margin-right:5px'
}
]
}
],
tbar : [{
text : 'Add Task Contributor Details',
iconCls : 'TASK_CONTRIBUTOR-add',
handler : function () {
TaskContributorrowEditing.cancelEdit();

// Create a record instance through the ModelManager
var r = Ext.ModelManager.create({
CONTRIBUTOR_ID : ''
,TASK_ID : ''
,SERVICE_ID : ''
,CONTEXT : ''
,CONTEXT_ID : ''
,CONTEXT_X_ID : ''
,START_DATE : ''
,END_DATE : ''
,ROLE : ''
,MD5 : ''
}
, 'TASK_CONTRIBUTOR');

TaskContributorStore.insert(0, r);
TaskContributorrowEditing.startEdit(0, 0);
}
}, {
itemId : 'removeTASK_CONTRIBUTOR',
text : 'Remove Task Contributor',
iconCls : 'TASK_CONTRIBUTOR-remove',
handler : function () {
var sm = grid.getSelectionModel();
var rec = grid.getSelectionModel().getSelection();
//call the delete record function
//delete_record('TASK_CONTRIBUTOR',rec[0].data);
TaskProgressrowEditing.cancelEdit();
TaskProgressStore.remove(sm.getSelection());
sm.select(0);
},
disabled : true
}
],
plugins : [TaskContributorrowEditing],
bbar : Ext.create('Ext.PagingToolbar', {
store : TaskContributorStore,
displayInfo : true,
displayMsg : 'Displaying <b>{0} - {1} of {2}</b>',
emptyMsg : "No Task Contributors to display"
}),
listeners : {
'selectionchange' : function (view, records) {
grid.down('#removeTASK_CONTRIBUTOR').setDisabled(!records.length);
}
}

});

//});
}




Response Times


IE 8

LOG: 1 Wed Oct 24 17:47:25 2012
LOG: Define Model Wed Oct 24 17:47:25 2012
LOG: Define Store Wed Oct 24 17:47:25 2012
LOG: Define Grid Edit Wed Oct 24 17:47:25 2012
LOG: Build Grid 1 Wed Oct 24 17:47:25 2012
LOG: Build Grid 2 Wed Oct 24 17:47:25 2012
LOG: Build Grid 3 Wed Oct 24 17:47:26 2012
LOG: Build Grid 4 Wed Oct 24 17:47:26 2012
LOG: 2 Wed Oct 24 17:47:27 2012

LOG: 1 Wed Oct 24 17:47:31 2012
LOG: Define Model Wed Oct 24 17:47:31 2012
LOG: Define Store Wed Oct 24 17:47:31 2012
LOG: Define Grid Edit Wed Oct 24 17:47:31 2012
LOG: Build Grid 1 Wed Oct 24 17:47:31 2012
LOG: Build Grid 2 Wed Oct 24 17:47:31 2012
LOG: Build Grid 3 Wed Oct 24 17:47:32 2012
LOG: Build Grid 4 Wed Oct 24 17:47:33 2012
LOG: 2 Wed Oct 24 17:47:33 2012

LOG: 1 Wed Oct 24 17:47:35 2012
LOG: Define Model Wed Oct 24 17:47:35 2012
LOG: Define Store Wed Oct 24 17:47:35 2012
LOG: Define Grid Edit Wed Oct 24 17:47:35 2012
LOG: Build Grid 1 Wed Oct 24 17:47:35 2012
LOG: Build Grid 2 Wed Oct 24 17:47:37 2012
LOG: Build Grid 3 Wed Oct 24 17:47:37 2012
LOG: Build Grid 4 Wed Oct 24 17:47:39 2012
LOG: 2 Wed Oct 24 17:47:39 2012

LOG: 1 Wed Oct 24 17:47:41 2012
LOG: Define Model Wed Oct 24 17:47:41 2012
LOG: Define Store Wed Oct 24 17:47:41 2012
LOG: Define Grid Edit Wed Oct 24 17:47:41 2012
LOG: Build Grid 1 Wed Oct 24 17:47:41 2012
LOG: Build Grid 2 Wed Oct 24 17:47:42 2012
LOG: Build Grid 3 Wed Oct 24 17:47:42 2012
LOG: Build Grid 4 Wed Oct 24 17:47:43 2012
LOG: 2 Wed Oct 24 17:47:44 2012


Firefox

1 Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Define Model Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Define Store Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Define Grid Edit Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Build Grid 1 Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Build Grid 2 Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Build Grid 3 Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
Build Grid 4 Wed Oct 24 2012 17:48:37 GMT+0100 (GMT Daylight Time)
2 Wed Oct 24 2012 17:48:38 GMT+0100 (GMT Daylight Time)


1 Wed Oct 24 2012 17:49:09 GMT+0100 (GMT Daylight Time)
Define Model Wed Oct 24 2012 17:49:09 GMT+0100 (GMT Daylight Time)
Define Store Wed Oct 24 2012 17:49:09 GMT+0100 (GMT Daylight Time)
Define Grid Edit Wed Oct 24 2012 17:49:09 GMT+0100 (GMT Daylight Time)
Build Grid 1 Wed Oct 24 2012 17:49:09 GMT+0100 (GMT Daylight Time)
Build Grid 2 Wed Oct 24 2012 17:49:09 GMT+0100 (GMT Daylight Time)
Build Grid 3 Wed Oct 24 2012 17:49:10 GMT+0100 (GMT Daylight Time)
Build Grid 4 Wed Oct 24 2012 17:49:10 GMT+0100 (GMT Daylight Time)
2 Wed Oct 24 2012 17:49:10 GMT+0100 (GMT Daylight Time)


Any help/tips would be greatly appreciated.

Cheers

Paul

mitchellsimoens
27 Oct 2012, 1:02 AM
IE will be slower than Firefox and Chrome. How many records are in the store?

pturley
29 Oct 2012, 1:00 AM
Hi realise IE will be slower that other browsers, but that is not something I can suggest as a resolution to the product users.

The store is not being loaded in the code above, it has been commented out.

Regards

Paul