Начиная с iOS8, на сайтах, которыми я управлял, периодически возникала проблема, когда изображения менялись местами с другими изображениями. Об этом упоминалось в нескольких местах, но без видимого решения:
https://discussions.apple.com/thread/6574663
http://tech.vg.no/2011/12/14/safari-on-ios-5-randomly-switches-images/
http://tech.vg.no/2012/02/01/safari-on-ios-5-randomly-switches-images-part-3/
похоже, это была проблема в iOS5 в прошлом. Наш сервер работает под управлением Lightspeed с конвейерной связью и сохранением активности. Администратор моего сервера подтвердил, что пайплайнинг возвращает активы в том порядке, в котором они были запрошены. Он упомянул, что отключение проверки активности может решить проблему, но значительно увеличит нагрузку на сервер, что было бы очень плохо.
Все мои активы также правильно передают длину содержимого.
Я действительно зашел в тупик для решения этой проблемы. Когда так много моих пользователей используют iOS, это начало сильно разочаровывать всех.
Это началось только с появлением iOS8, в которой есть довольно серьезные изменения в Safari. В каждом выпуске из 8 проблема все еще существует. Как я уже сказал, это непостоянно, и наши пользователи начинают обвинять нас в том, что «ни на одном другом сайте нет проблем».
Мне было интересно, может ли кто-нибудь пролить свет на это? Кто-нибудь еще сталкивался с этой проблемой и / или нашел решение?
Вот это ссылка на мой сайт.
Я занимался этой проблемой на новом веб-сайте, который мы только что запустили. Все выглядело хорошо в FF / Opera / Chrome и т. Д., Но у меня были ОГРОМНЫЕ проблемы с заменой изображений в iOS8 +. Я заметил, что многие сайты, сообщающие об этой проблеме, используют веб-сервер Litespeed. Я переключился на Apache на мгновение, чтобы проверить, и, конечно же, сайт загрузился нормально. Мы с моим хостом (wiredtree.com, отличный сервис) просмотрели некоторые параметры конфигурации в Litespeed и отключили эти два параметра:
После отключения этих двух веб-сайты загружались без проблем. Потребовалось очень небольшое снижение производительности, но оно того стоило.
Сначала мы попытались отключить keep-alive, чтобы эффективно отключить конвейерную обработку HTTP, но это не решило проблему. Вышесказанное - единственное, что я видел, предлагая реальное решение.
Надеюсь, это поможет кому-нибудь решить те же проблемы!
У нас тоже была эта проблема, и решением для нас было удалить все теги в нашем HTML и вместо этого использовать классы css со свойством background. Вот пример:
.img_logo {
background: url(../images/logo.png?v=20150427) no-repeat;
width: 175px;
height: 49px;
display: block;
}
Я знаю, что это немного неловко, но это был единственный способ решить проблему для нас. Одним из недостатков является то, что нам пришлось удалить «alt» для изображений, но я думаю, вы можете решить это с помощью некоторого javascript, если необходимо.
Надеюсь это поможет!
использование протокола http / 2, похоже, решило проблему в моем случае. Но я уверен, что у этой проблемы есть реальное исправление / решение.
Не ответ, а подход к решению проблемы:
Если вы можете воспроизвести проблему до конца шага 5, и нет набора Изменения конфигурации или программного обеспечения сервера имеют значение, проблема в iOS и, вероятно, вы ничего не можете сделать. (Но это маловероятно.)
Однако если есть набор изменений конфигурации, не зависит от Litespeed (т. е. происходит также с Apache), тогда мы можем решить проблему: используйте BrowserMatch
директивы для определения конкретных (набора) браузеров; установите параметры конфигурации для этого набора BrowserMatch set. Вы найдете примеры подобных вещей еще в браузерах IE 3.0 и Netscape.
Если окажется, что проблема связана с Litespeed, используйте описанный выше подход и сообщите об ошибке в службу поддержки Litespeed. Вы ведь платите за поддержку?