Веб-приложение на дисплее Retina iPad 3 медленно рисует экран

У меня есть веб-приложение для iPod touch и iPad. Работает как шарм на iPad 1 и iPad 2. Теперь я протестировал новый iPad (iPad 3, iPad HD, какое бы имя ни использовалось), и я вижу, что рисование экрана происходит медленно. Я вижу, как блоки рисуются один за другим.

Кто-нибудь знает, как я могу получить рисование экрана быстрее, чем iPad 1 и 2, а не медленнее?

РЕДАКТИРОВАТЬ: истечение срока действия награды. По крайней мере, награда дала несколько ответов, хотя их недостаточно для присуждения награды. Вопрос остается открытым.


person bart s    schedule 02.04.2012    source источник
comment
То же самое здесь, вы нашли решение проблемы с производительностью?   -  person Vilius    schedule 21.05.2012
comment
нет, здесь еще нет решения.   -  person bart s    schedule 21.05.2012
comment
У меня такая же проблема в iPad3 (ios5), я заменяю весь богатый html простым списком ul/li, но он все еще работает медленно, вы решили это?   -  person Lanston    schedule 19.08.2013
comment
@Lanston: обновление до iOS6 решит эту проблему. движок JavaScript в iOS6 намного быстрее, чем в iOS5. Не нашел решения для iOS5 (и теперь интересно, что будет с грядущим iPad Mini с ретиной)   -  person bart s    schedule 19.08.2013
comment
@barts, вы пытались использовать iScroll для повышения производительности?   -  person Lanston    schedule 19.08.2013
comment
@Lanston медленное рисование относилось не к скроллеру, а ко всей странице. Я добавил ответ на один из ваших вопросов о принудительном аппаратном ускорении iScroll. Это может относиться и ко всему документу.   -  person bart s    schedule 20.08.2013


Ответы (3)


У нас была аналогичная проблема в нашем приложении, и мы попробовали некоторые оптимизации, вот два наиболее эффективных подхода:

  1. Избегайте использования эффектов CSS3. В предыдущих версиях мы использовали много теней CSS3, что сильно замедляло процесс рендеринга на iPad 3. После замены этих теневых эффектов фоновыми изображениями производительность на iPad 3 значительно улучшилась.

  2. Оптимизировать Javascript. В нашем приложении есть несколько прокручиваемых компонентов. Всякий раз, когда пользователь прокручивает компонент, будет выполняться некоторый код Javascript для выполнения некоторой работы по загрузке, например загрузки изображений ленивым способом. На iPad 3 прокрутка будет задерживаться на 500 мс, когда пользователь попытается прокрутить с одной страницы на другую. Затем мы обнаружили, что в обратном вызове прокрутки была выполнена некоторая ненужная работа по загрузке изображения, после ее удаления производительность прокрутки приемлема.

Эти два подхода могут быть весьма специфичны для нашего приложения. Надеюсь, они смогут помочь и вам.

person ZelluX    schedule 23.05.2012
comment
Я проверил это, и хотя удаление теней (даже не с использованием изображений) немного увеличивает скорость, но этого недостаточно. Тем не менее iPad 1 с iOS 5.latest быстрее создает экран с тенями, чем новый iPad без теней. Второй пункт касается вашего приложения. Я ценю ответ и проголосовал. - person bart s; 24.05.2012

Вы проверили область просмотра в своей мете?

я использую

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″> 

Я не чувствовал накладных расходов на производительность. Возможно, некоторые части вашего веб-приложения сталкиваются со слабостью веб-представления.

Вы можете начать комментировать свой HTML, пока не обнаружите, что ваше веб-приложение работает гладко.

person Mickey    schedule 29.05.2012
comment
Я не понимаю, как эта мета повлияет на рендеринг экрана на новом iPad, но что бы там ни стоило, да, она установлена. Комментирование HTML до тех пор, пока приложение не станет гладким, означает, что я должен убить макет и параметры приложения, что, конечно, даже не вариант. - person bart s; 29.05.2012
comment
Вы пробовали использовать Instrument для измерения загрузки ЦП? Я обычно использую его для измерения нативного приложения, но не пробовал в веб-приложении. - person Mickey; 29.05.2012
comment
Я сравнил iPad 1, iPad 2 и новый iPad рядом друг с другом. Достаточно визуальной проверки - person bart s; 29.05.2012

Я обновил новый iPad (iPad 3) до iOS 6 и больше не вижу проблемы с рендерингом. Я видел в нескольких статьях, что скорость Safari значительно увеличилась. Этот прирост производительности в iOS 6 решает проблему моего веб-приложения.

Поскольку используемые нами iPad предназначены для веб-приложений, я рекомендую iPad 3 только с iOS6.

Спасибо за посты и ответы!

person bart s    schedule 24.09.2012