Что может помочь, так это избегать использования массива для хранения параметров и вместо этого непосредственно объединять строки.
Вот сравнение jsperf для этого, использование массива примерно на 80% медленнее, чем прямая конкатенация строки:
https://jsperf.com/javascript-test-string-concat-vs-array/1
Таким образом, вы можете изменить свою функцию следующим образом:
function personNameChangedCallback(names){
if(names.response.length > 0){
var htmlOptions = '';
for (var i = 0; i< names.response.length; i++) {
htmlOptions += '<option>'+ names.response[i] +'</option>';
}
jQuery('[id=personNameSelected]').html(htmlOptions);
}
Причина, по которой он медленен в Internet Explorer, заключается в том, что его движок Javascript не так продвинут, как в других браузерах.
Internet Explorer также будет иметь проблемы с прокруткой всех этих параметров.
Использование поля для предложений, как уже было упомянуто кем-то другим, является лучшим вариантом, особенно когда ваше приложение должно быть совместимо с Internet Explorer.