Крутилки при загрузке картинок — одно из самых ужасных изобретений Веба 2.0.
Почему? Потому, что они ничему не помогают, зато всему остальному мешают.
Классическая крутилка встречалась ещё в досовских приложениях и представляла собой быстро сменяющие друг друга символы ##| / − \## . Она просто показывала, что программа не зависла. Логика была в том, что если она зависнет, она уже не сможет ничего крутить.
В современных прикладных программах, как правило, рисованием интерфейса занимается отдельный тред, поэтому крутилка может спокойно продолжать крутиться даже тогда, когда тот тред, про который она крутится, давно завис или вовсе аварийно завершился.
Есть у крутилки и другой смысл.
Вот Спотлайт показывает крутилку, пока ищет. Поскольку результаты поиска появляются ещё до того, как он заканчивается, крутилка даёт понять, что они могут дополниться. Когда крутилка погасает, это значит, что перед нами — всё, что нашлось.
Таким образом, крутилки работают тогда, когда оценить реальный прогресс с выполнением текущей задачи невозможно, либо это не имеет смысла потому, что процессу совершенно необязательно доходить до конца, чтобы принести пользу. В других случаях мы должны показывать прогрессбар (естественно, если есть способ оценить сделанную часть работы). Кроме собственно прогресса, он позволяет ещё и оценить равномерность выполнения процесса, прикинуть, сколько осталось ждать.
Учитывая, что картинка имеет вполне определённый объём и скачивается с некоторой известной и, как правило, достаточно стабильной скоростью, ясно, что прогрессбар тут намного уместнее крутилки.
Но ведь постепенно загружающаяся картинка — это и есть прогрессбар загрузки картинки! Больше ничего и не нужно.