Страница загрузки мобильного Safari при первой загрузке - PullRequest
1 голос
/ 22 августа 2011

Я создал веб-приложение с большим количеством Javascript и недавно настроил его для работы на iPad (нужны были настройки, потому что он позволяет рисовать, перемещая мышь, и onmousedown / onmousemove не будет запускаться до тех пор, пока не отпущен палец).

Теперь, с твиками, приложение отлично работает в Mobile Safari.Однако я вижу проблему, когда при первой попытке загрузить приложение на iPad часто происходит сбой Mobile Safari.Однако при повторном открытии браузера и обновлении страницы приложение прекрасно загружается и становится полностью пригодным для использования.Проведя некоторые исследования, я обнаружил, что наиболее распространенная причина сбоя Mobile Safari - более 6 МБ изображений или несколько изображений, загруженных с помощью Javascript.Мое приложение использует только изображения для значков, поэтому общий размер изображения на самом деле очень мал (вероятно, менее 100 КБ), но мой код JS, однако, несжатый на 2,5 МБ и сжатый на 350 КБ с использованием gz (именно так я отправляю его наклиент).

Я также читал, что загрузка изображений через CSS позволяет избежать сбоев из-за ограничения размера изображения.Я подумал, что это стоит попробовать, так как также возможно, что сбой вызван большим количеством изображений, а не только общим размером изображения.После изменения некоторых моих значков, отображаемых с помощью свойства background-image в CSS, сбой, похоже, исчез.Я решил пойти дальше и настроить все другие иконки для рендеринга с использованием CSS-фонов.После изменения всех моих изображений, которые будут отображаться с использованием CSS, внезапно происходит сбой.

Что приводит меня к нескольким возможным выводам:

A.) Даже частичный CSSИсправление, которое я сделал, на самом деле не помогло, но каким-то образом мне очень повезло, и я не увидел сбоя при перезагрузке приложения и многократном перезапуске iPad (тогда сбой, вероятно, где-то с моим кодом JS или другими частями страницы)

B.) Я представил другую проблему при изменении остальных значков для загрузки через css (если это так, я не ожидал бы, что перезагрузка страницы решит проблему, но это так)

C.) Сбой происходит из-за чего-то в моем Javascript, не связанном с изображениями (но тогда почему он загружается и работает правильно после перезагрузки)

D.) IPad задыхается при попытке рендерить / распаковать столько Javascript за раз (Я не слышал, чтобы это было проблемой, но также редко можно увидеть такой большой кусок Javascript)

Кто-нибудь знает, кроме других проблем?из-за предела изображения в 6 МБ может произойти сбой Mobile Safari при первой загрузке страницы, но не второй?

Если это поможет, вот ссылка на мое веб-приложение (это старая версия, которая загружает изображениячерез JS): http://www.grafpad.com/grafpad/canvas/demo (написано на пижаме, поэтому так много сгенерированного Javascript).

Спасибо

1 Ответ

0 голосов
/ 25 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...