Browser: Chrome27 on OSX and Windows XP/Vista/7
SC versions tested: SNAPSHOT_v9.0d_2013-05-29; and 8.3p from 2013-05-29
To re-create:
1. Type n characters into a PasswordItem
2. Press backspace n-1 times
3. Observe that each character deletes imperceptibly fast
4. Press backspace to delete the single remaining character
5. Observe that the character appears to take longer to delete
The 'heavier' your SmartClient application, the longer that last character takes to disappear from the PasswordItem. So, if you run the code below with no other SC components on the screen, then you almost can't perceive a difference between the pauses, but if open up the http://www.smartclient.com/#showcaseApp and click around a bit (perhaps expand the tree, click an entry to populate the Office Supply Items grid, click the 'Edit' tab of the item, etc) then the pause becomes more noticeable.
Our application allows the user to open tabs and, consequently, with many tabs open (even though they are not visible) Chrome can hang for up to 10 seconds when deleting that final character!! It is unusual that this one operation is so slow, when the rest of the app is responsive even with that many tabs open.
When looking in Chrome's Timeline profile tool you can see that there are two different waterfalls for the different scenarios.
This is for deleting one of the n-1 characters:
[ATTACH]5732[/ATTACH]
And this is for deleting the final character:
[ATTACH]5733[/ATTACH]
As you can see, I had to chop the timeline but former is well under 0.01s whereas the slower one takes almost 0.4s.
I wasn't sure why there would be the extra Layout and Recalculate Style events just because you're deleting the final character of the password, but it seemed consistent over several captures of the waterfall.
I also looked at the SC Console log and you can see the difference.
Deleting one of the n-1 characters:
Deleting the final character:
Many thanks!
SC versions tested: SNAPSHOT_v9.0d_2013-05-29; and 8.3p from 2013-05-29
To re-create:
1. Type n characters into a PasswordItem
2. Press backspace n-1 times
3. Observe that each character deletes imperceptibly fast
4. Press backspace to delete the single remaining character
5. Observe that the character appears to take longer to delete
The 'heavier' your SmartClient application, the longer that last character takes to disappear from the PasswordItem. So, if you run the code below with no other SC components on the screen, then you almost can't perceive a difference between the pauses, but if open up the http://www.smartclient.com/#showcaseApp and click around a bit (perhaps expand the tree, click an entry to populate the Office Supply Items grid, click the 'Edit' tab of the item, etc) then the pause becomes more noticeable.
Code:
isc.Window.create({items:[isc.DynamicForm.create({fields:[{name:"test",type:"password"}]})],autoSize:true,autoCenter:true}).show()
When looking in Chrome's Timeline profile tool you can see that there are two different waterfalls for the different scenarios.
This is for deleting one of the n-1 characters:
[ATTACH]5732[/ATTACH]
And this is for deleting the final character:
[ATTACH]5733[/ATTACH]
As you can see, I had to chop the timeline but former is well under 0.01s whereas the slower one takes almost 0.4s.
I wasn't sure why there would be the extra Layout and Recalculate Style events just because you're deleting the final character of the password, but it seemed consistent over several captures of the waterfall.
I also looked at the SC Console log and you can see the difference.
Deleting one of the n-1 characters:
Code:
11:22:43.283:KDN8:INFO:EventHandler:keyDown event with Canvas target: [PasswordItem ID:isc_PasswordItem_4 name:foo], native target: [INPUTElement]{name:foo} 11:22:43.283:KDN8:DEBUG:EventHandler:Event 'keyDown' bubbled to top 11:22:43.283:KDN8:INFO:EventHandler:keyPress event with Canvas target: [PasswordItem ID:isc_PasswordItem_4 name:foo], native target: [INPUTElement]{name:foo} 11:22:43.283:KDN8:DEBUG:EventHandler:keyPress not handled natively 11:22:43.283:KDN8:DEBUG:EventHandler:Bubbling for event 'keyPress' cancelled via STOP_BUBBLING return value by target: [DynamicForm ID:isc_DynamicForm_22] .008s gap 11:22:43.291:INP9:INFO:RPCManager:sendQueue called with no current queue, ignoring 11:22:43.394:KUP0:INFO:EventHandler:keyUp event with Canvas target: [PasswordItem ID:isc_PasswordItem_4 name:foo], native target: [INPUTElement]{name:foo} 11:22:43.394:KUP0:DEBUG:EventHandler:Event 'keyUp' bubbled to top
Code:
11:22:48.613:KDN1:INFO:EventHandler:keyDown event with Canvas target: [PasswordItem ID:isc_PasswordItem_4 name:foo], native target: [INPUTElement]{name:foo} 11:22:48.614:KDN1:DEBUG:EventHandler:Event 'keyDown' bubbled to top 11:22:48.614:KDN1:INFO:EventHandler:keyPress event with Canvas target: [PasswordItem ID:isc_PasswordItem_4 name:foo], native target: [INPUTElement]{name:foo} 11:22:48.614:KDN1:DEBUG:EventHandler:keyPress not handled natively 11:22:48.614:KDN1:DEBUG:EventHandler:Bubbling for event 'keyPress' cancelled via STOP_BUBBLING return value by target: [DynamicForm ID:isc_DynamicForm_22] .733s gap 11:22:49.347:INP2:INFO:RPCManager:sendQueue called with no current queue, ignoring 11:22:50.062:KUP3:INFO:EventHandler:keyUp event with Canvas target: [PasswordItem ID:isc_PasswordItem_4 name:foo], native target: [INPUTElement]{name:foo} 11:22:50.062:KUP3:DEBUG:EventHandler:Event 'keyUp' bubbled to top
Comment