MOSS list library lookup column drop down - performance issue with IE7

You may experience performance issue on a SharePoint 2007 site page where it has sharepoint list library lookup column, for example there is a custom list named 'List1' with custom column 'Column1', there are around 10000 items added to this list. Create another list named 'List2' and create a lookup column named 'Column2' pointing to List1 -> Column1.

From your client where you have Internet Explorer 6 or 7, browse to the sharepoint List2 and create new item, in new item creation page go to Column2 and click on the drop down button, it will take very long time display the items pulled from List1. We will not experience this issue in SharePoint 2003, we have identified this issue after migrating SharePoint 2003 site to a MOSS 2007 environment and there is no change in client side (IE version).

The reason behind this performance issue is because in MOSS the way we render the data and process is changed compared to earlier version SharePoint 2003.

In SPS 2003 the dropdown items are rendered as HTML SELECT element with each option in the dropdown specified as a separate OPTION elements, it will be easier and quicker in IE 7 to process and display the data. But there will be delay in network traffic as http payload is high.

      <SELECT TABINDEX=1 NAME="urn:schemas-microsoft-com:office:office#GetData"><OPTION Value="">(None)</OPTION><OPTION VALUE="13360">America</OPTION><OPTION VALUE="13107">b</OPTION><OPTION VALUE="13040">bhm</OPTION><OPTION VALUE="12754">bnm</OPTION><OPTION VALUE="12749">bnmvb</OPTION><OPTION VALUE="13358">bus</OPTION>

In MOSS the dropdown items are rendered as a SPAN element (with its opt attribute set to _Select) and then all the dropdown items are specified as a long string with items separated by ‘|’ (pipe) symbol. So that the data packet size is reduced, it will improve the nework performance at the same time it has issues with old IE versions like IE6 and IE7.

<span style="vertical-align:middle"><input name="ctl00$m$g_b4b96149_5df0_41fd_8890_f4dac0ac0b09$ctl00$ctl04$ctl01$ctl00$ctl00$ctl04$ctl00$ctl01" type="text" id="ctl00_m_g_b4b96149_5df0_41fd_8890_f4dac0ac0b09_ctl00_ctl04_ctl01_ctl00_ctl00_ctl04_ctl00_ctl01" class="ms-lookuptypeintextbox" onfocusout="HandleLoseFocus()" opt="_Select" title="LookRom" optHid="SPLookRom_Hidden" onkeypress="HandleChar()" onkeydown="HandleKey()" match="" choices="(None)|0|America|13357|b|13359|bhm|13358|d|25|d|31|d|34|d|37|d|40|d|207|d|213|d|216|d|219|d|222|d|389|d|395|


To overcome this performance issue we need to upgrade the Internet Explorer version to IE8.

In MOSS the data packet size transferred between server and client is drastically reduced and it saves 2/3 of network bandwidth, so that we would say the design change in MOSS is much better than SPS 2003, except the IE7 client performance. Just to improve the client performance going back to SPS 2003 method and increase network traffic does not make sense, so that we have improved IE java script execution in IE8.

With today’s rich AJAX web-applications, some of the most common JScript operations include String and Array operations. We received feedback from many users regarding slow performance of the inbuilt string concatenation functions of Jscript, there are many blog post about the same topic. With IE8, we fixed this problem in the JScript engine. String concatenation is now many times faster when compared to the previous JScript engine.

Post By: Selvakumar Ganapathi [MSFT]