Web-Server

如何使用 keep-alive + HTTP Pipe-lining 修復 iOS 8 中的圖像交換問題?

  • July 14, 2018

自 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。我的伺服器管理員已確認管道正在按照請求的順序返回資產。他提到禁用keep-alive可能會解決問題,但會大大增加伺服器負載,這將是一件非常糟糕的事情。

我所有的資產也都正確傳遞了內容長度。

我現在真的陷入了解決這個問題的死胡同。我有這麼多使用者使用 iOS,開始讓每個人都感到非常沮喪。

它只是隨著 iOS8 的引入才開始發生的,iOS8 對 Safari 進行了一些相當大的更改。在每個版本中,共 8 個,問題仍然存在。正如我所說,它是斷斷續續的,我們的使用者開始指責我們“沒有其他網站有問題”。

我想知道是否有人可以對此有所了解?有沒有其他人遇到過這個問題和/或找到解決方案?

是我有問題的網站的連結。

我們也遇到了這個問題,我們的解決方案是刪除 HTML 中的所有標籤,並使用帶有背景屬性的 css 類。這是一個例子:

.img_logo {
 background: url(../images/logo.png?v=20150427) no-repeat;
 width: 175px;
 height: 49px;
 display: block;
}

感覺有點尷尬,我知道,但這是為我們解決問題的唯一方法。一個缺點是我們必須刪除圖像的“alt”,但我想你可以在必要時使用一些 javascript 來解決這個問題。

希望這可以幫助!

我在我們剛剛推出的一個新網站上處理這個問題。在 FF/Opera/Chrome 等中一切看起來都不錯,但我在 iOS8+ 中遇到了主要的圖像交換問題。我注意到許多報告此問題的網站都執行 Litespeed 網路伺服器。我切換到 Apache 進行測試,果然,網站載入得很好。我的主機(wiredtree.com,優質服務)和我查看了 Litespeed 中的一些配置選項,並禁用了這兩個選項:

  • 啟用壓縮
  • 啟用動態壓縮

禁用這兩個後,網站載入正常,沒有問題。它對性能的影響很小,但絕對值得。

起初,我們嘗試禁用 keep-alive 以有效禁用 HTTP Pipelining,但並沒有解決問題。以上是我見過的唯一提供真正解決方案的東西。

希望這可以幫助處理相同問題的人!

引用自:https://serverfault.com/questions/675761