2014-02-12 3 views
1

Это действительно странное поведение. С трудом даже количественно. Пришлось пересматривать несколько раз.Backbone Marionette - изображения не отображаются надежно на iPad - состояние гонки?

Лучшее, что я могу сделать, это следующее:

Техник стека для моего приложения является Магистральные марионеток, handlebars.js, require.js.

Приложение содержит изображения в основном размера значков - скажем, 32x32 и ниже. Некоторые jpg, некоторые png, некоторые svg.

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

Но если я нажал кнопку «Сон», оставьте iPad сидеть в течение минуты или двух, пока устройство не перейдет в режим гибернации, а затем его оживить, изображения медленно и волшебным образом исчезают. Они не внезапно отображаются, когда загорится экран. После этого они исчезают.

Не работает, чтобы просто нажать кнопку сна и мгновенно оживить. Придется подождать минуту, пока он действительно не спящий.

После истинной гибернации, независимо от того, сколько раз я обновляю страницу, изображения есть. Но, если я пойду и очищу кеш на Safari и загружаю страницу, изображения снова не появятся - пока я не сделаю эту спящую вещь.

Все эти изображения обязательно отображаются в браузере на ПК (все вкусы). Это просто на iPad, чего у них нет.

Я думал, сначала это были только изображения, которые я загружал в виде коллекций. Это не. У меня есть сторонний видеопроигрыватель HTML5 в приложении. В svg-формате есть кнопка воспроизведения и другие элементы управления. Это также демонстрирует поведение выше.

После того, как iPad спящий и был восстановлен, изображения исчезают. Только очищающий кэш заставляет их снова исчезать.

Ошибок 404, когда изображения не отображаются (отмечено в dev console на MAC). Фактически, если я просто коснусь экрана, на котором должна отображаться кнопка воспроизведения видео, начинается плеер. Таким образом, кнопка кажется на самом деле там, просто не нарисована на экране - пока вы не сделаете эту спящую вещь.

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

Я склонен думать, что это не сами изображения, потому что одни и те же изображения на обычной веб-странице всегда отображаются на iPad. Кроме того, этот сторонний видеопроигрыватель на простой веб-странице отображает кнопку воспроизведения svg и автоматически контролирует iPad.

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

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

+3

Можете ли вы обновить свой вопрос некоторым кодом. –

ответ

0

Определенно проблема загрузки изображений динамически через фреймворк. Они там, но не рисуют. Не знаю, в чем проблема. Буквально происходит только в браузере Safari. Невозможно сделать это где-то еще, даже старый IE. Знайте одно решение, которое определенно работает. Предварительно загрузите все изображения, явно включив их в div в вашей разметке.Когда вы загружаете приложение для марионетки, удалите div - $ («# preload-images»). Remove(). После этого изображения никогда не перестают рисоваться при добавлении динамически с помощью марионетки.

+0

Дополнительное подтверждение. У меня есть другой проект, в котором я управляю показом слайдов на приемниках iPad с контроллером iPad. Все модели iPad одинаковы - 2. Приемники iPads представляют собой сочетание IOS 7 и 8. Некоторые слайды jpg не рисуют на 7-м. Они всегда рисуют на 8-м. – Robert

Смежные вопросы