Mac OS X: что вызывает вращающийся надувной мяч?

tr:second неверный CSS. Правильный синтаксис:

'#personDataTable tr:nth-child(2) td:first'
11
задан Jon Seigel 12 April 2010 в 13:06
поделиться

3 ответа

Сервер окна покажет, что вращение ожидает курсор, когда frontmost приложение или приложение, которое имеет окно под указателем мыши, не ответило на события с сервера окна в определенном окне времени.

Для предотвращения вращения ожидают курсор, приложение должно обслужить события своевременно. Нет никакого пути вокруг этого поведения сервера окна, и на серьезном основании: Приложения на Mac OS X, как когда-либо предполагается, не безразличны пользователю.

20
ответ дан 3 December 2019 в 02:21
поделиться

Причина состоит в том, что Ваше приложение блокирует UI. Как другие сказанные плакаты, менеджер окон может заметить, что Вы не обработали события в некоторое время и подняли этот UI.

Скорее всего, Вы делаете некоторый IO (такой как чтение или запись в диск или выполнение сетевых запросов) синхронно на UI поток (по умолчанию). Хорошее эмпирическое правило к хранению Вашего быстро реагирующего приложения (и таким образом предотвращение beachball) никогда не состоит в том, чтобы делать синхронного IO на потоке UI. Можно или использовать асинхронный IO (API, которые берут обратный вызов, действительно работайте над фоновым потоком и затем уведомьте Вас относительно потока UI, когда они сделаны), или иначе можно использовать отдельный фоновый поток, чтобы сделать работу.

Если Вы не делаете IO, то Вы находитесь, вероятно, в некотором длинном цикле на потоке UI, который заставляет Вас быть безразличными. В этом случае или оптимизируйте или удалите цикл или переместите его в фоновый поток.

7
ответ дан 3 December 2019 в 02:21
поделиться

Принятие Вашего приложения имеет достаточные аппаратные ресурсы (который будет не всегда иметь место в действительности), нет действительно никакой причины, Ваше приложение должно когда-либо beachball. Если это сделает, выяснит, какой раздел кода блокирует пользовательский интерфейс (если это будет неинтуитивный Shark.app, то пригодится), и перемещение, что к фоновому потоку (или используйте другую стратегию устранить паузу). К счастью, Какао и Objective C имеют довольно хорошие инструменты для поточной обработки, видят NSOperationQueue для запуска с. Apple также имеет несколько хороших документов о настройке производительности, посмотрите этот вопрос для соответствующих ссылок.

6
ответ дан 3 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: