Details
Description
When navigate to some new content and clicking a button triggers the rendering of a large table
Then menu bar becomes very slow and it takes ~2 sec to display the submenus in IE
Firefox shows no symptom of the issue
If revisit the content by clicking the submenu option again which makes table go away, menu bar responsed normally
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
The problem does not seem to be related to changing CSS classes. I compared their app to an app I created myself in which no additional style classes were specified and also the *:hover CSS classes were removed from our themes, and the problem was still there.
My hypothesis is that this could be related to selecting elements by id, since it's well know that selecting elements in IE is dramatically slower than in other browsers (see http://blog.creonfx.com/javascript/mootools-vs-jquery-vs-prototype-vs-yui-vs-dojo-comparison-revised). Since, in order to display a menu we have to make numerous calls to Prototype's selector "$()", which is basically an alias for document.selectElementById(), to hide all other visible menus that aren't selected and to display submenus, this could be a reason.
I guess IE has a very inefficient algorithm for document.selectElementById(). Maybe it simply iterates over all the ids in the page until it finds the desired element, instead of using a more efficient searching algorithm, or maybe it doesn't index the ids in a page at all, etc. Since, data tables can create a lot of elements with their own ids, this seems likely. I will test this with other components to see if they get slower too.
Horizontal menu delay with IE6 has been fixed.
Modified: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\bridge\lib\extras\keyboardNavigator.js
Sending content: D:\work\development\head\svn\ossrepo\icefaces\trunk\icefaces\bridge\lib\extras\keyboardNavigator.js
Completed: At revision: 19255