На заметку, оставлю небольшое решение проблемы зависания браузера или возникновение ошибки по таймауту при большом цикле или при сортировке данных функцией sort() в JavaScript.
Иногда бывает нужно обработать большой объем данных в браузере с помощью JavaScript или отсортировать большой массив. Но при этом браузер не выдерживает и зависает или выдает ошибку что было остановлено выполнение функции по таймауту.
Существует простое решение этой проблемы, которое помогает немного обмануть браузер, чтоб он «думал», что все хорошо и данные обрабатываются.
Для этого в теле цикла достаточно разместить следующий код:
if(outs > 4000){
outs = 0;
setTimeout(doWork, 1);
}
outs++;
где doWork – это пустая функция:
function doWork(){}
С помощью такой манипуляции мы приостанавливаем выполнение основной функции и вызываем пустую doWork с задержкой в 1 мс. Этого достаточно, чтоб браузер не вылетал по таймауту и продолжал выполнение большого цикла.
Ну о недостатках писать думаю не стоит, они и так ясны.

IT-news
jQuery
php
SEO
SQL
Заметки
заработок