Показать сообщение отдельно
  #3 (permalink)  
Старый 04.06.2015, 16:05
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

а я в подобных случаях делаю функцию с самовызовом через нулевой таймаут.
setTimeout(function(){}, 0) выполнит указанную функцию сразу по окончании текущей функции. При этом происходит разрыв цепочки выполнения и интерфейс может обновиться. Во-вторых, это позволяет избежать проблем с уведомлением о зависшей функции, особенно в IE с его "гениальным" способом определения зависа. В-третьих, этот способ будет поддерживаться бОльшим количеством браузеров.
Если же функция использует какой-либо циклический код, а является так сказать набором последовательных команд, ее можно разбить на несколько частей и вызывать эти части друг за другом.

Из минусов - более громоздкий код.
Ответить с цитированием