自 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 类。这是一个例子:
感觉有点尴尬,我知道,但这是为我们解决问题的唯一方法。一个缺点是我们必须删除图像的“alt”,但我想你可以在必要时使用一些 javascript 来解决这个问题。
希望这可以帮助!
我在我们刚刚推出的一个新网站上处理这个问题。在 FF/Opera/Chrome 等中一切看起来都不错,但我在 iOS8+ 中遇到了主要的图像交换问题。我注意到许多报告此问题的网站都运行 Litespeed 网络服务器。我切换到 Apache 进行测试,果然,网站加载得很好。我的主机(wiredtree.com,优质服务)和我查看了 Litespeed 中的一些配置选项,并禁用了这两个选项:
禁用这两个后,网站加载正常,没有问题。它对性能的影响很小,但绝对值得。
起初,我们尝试禁用 keep-alive 以有效禁用 HTTP Pipelining,但并没有解决问题。以上是我见过的唯一提供真正解决方案的东西。
希望这可以帮助处理相同问题的人!
不是答案,而是解决问题的方法:
如果您可以通过第 5 步一直重现问题,并且没有任何配置更改或服务器软件更改产生影响,那么问题出在 iOS 上,您可能无能为力。(但这不太可能。)
但是,如果有一组不依赖于 Litespeed 的配置更改(即,Apache 也会发生),那么我们可以做一个解决方法:使用
BrowserMatch
指令来检测特定的(一组)浏览器;为此设置 BrowserMatch 集设置配置参数。你会发现这种事情的例子可以追溯到 IE 3.0 和 Netscape 浏览器。如果问题出在 Litespeed,请使用上述方法并使用 Litespeed 支持提交错误。您正在为支持付费,不是吗?
在我的情况下,使用 http/2 协议似乎已经解决了这个问题。但是,我确信这个问题可能有一个实际的修复/解决方案。