Pull to refresh
2
0
Максим @MaxAmon

User

Send message
Временные промежутки можно делать короче. Однако, думаю вы не правильно поняли — первоначально в коде был большой массив, внутри которого так же было много тяжелых действий. Когда IE начинал обрабатывать его, он мог «заморозиться» на неопределенное количество секунд, что чудесным образом приводило к разрыву соединения. При окончании цикла, начиналась свистопляска с пере-подключением и перерисовкой интерфейса. Одним словом — это критическое место в программе приводило к абсолютно не корректному поведению приложения.
Большой временной промежуток был специально поставлен, что бы массив (скорость обработки которого была не критична) обрабатывался очень редко и очень медленно — имулируя работу в background-е.
Таким способом отсортировать массив думаю можно, хотя это потребует некоторых изменений.
Да, получилось не корректно. Словосочетание «основной поток» подразумевает что есть и не «основные». Спасибо исправил.
Тоже верно. Приложения в основном стараются проектировать так, что бы можно было логически разбить JS на части. Каждая часть становиться «чистой» функцией.
А вот когда проектное решение хромает на обе ноги, и от него уже нельзя отказаться, приходится придумывать подобное этому — постепенную (последовательную) обработку цельного массива данных через равные (>0) тайм-ауты.
200мс — поставлено для наглядности.
1. Да! Разбиваем на подзадачи и каждую вызываем асинхронно (в случае если основная задача «не прерываемая», например — цикл).
2. Вы правы! Строго говоря — падает при малом stepRange, т.е. timeOut можно выставлять в 0.
3. IE 7 и 8

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Registered
Activity