Обновление 2: изменено, чтобы отразить сетку, как характер того, что у вас есть. Вот мои выводы с помощью jQuery 1.7.1 (один - ваш верхний код, два - ваш нижний код). Я взял только 5 самых медленных вещей, потому что все остальное не имело значения.

Как вы можете видеть, причина того, что один, вероятно, медленнее, чем другой, из-за функции sortOrder (минимизированной как U) и / или Array.sort. Оба из них даже не появляются в два. Несомненно, проблема в том, что приходится возвращаться и сортировать результаты. makeArray (уменьшенный как s выше), похоже, занимает меньше времени в 1, но это не компенсирует необходимость сортировки.
Обновление: Я создал jsFiddle, чтобы поиграть с ним , и я не вижу заметной разницы в IE8 между этими двумя методами. Возможно, нужно больше контекста для того, как выглядит эта страница / какие стили применяются. Это может быть связано с рендерингом браузера, из-за которого ваш код работает по-другому.
IE8 имеет встроенный профилировщик.
- Перейти к инструментам разработчика (F12)
- Перейдите на вкладку «Профиль»
- Нажмите кнопку «Пуск»
- Работает ли JavaScript так, как нужно
- Нажмите Стоп и проанализируйте результаты. Ищите вещи, которые являются медленными. Переработать их.
- Повторите
Советы по улучшению вашего JavaScript. Старайтесь не вызывать $ ($ colSelect) все время. Сохраните его в переменную, например, так.
var $colSelect = $($('#stuff').find('.things'));