AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 675761
Accepted
David
David
Asked: 2015-03-17 01:21:11 +0800 CST2015-03-17 01:21:11 +0800 CST 2015-03-17 01:21:11 +0800 CST

如何使用 keep-alive + HTTP Pipe-lining 修复 iOS 8 中的图像交换问题?

  • 772

自 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 个,问题仍然存在。正如我所说,它是断断续续的,我们的用户开始指责我们“没有其他网站有问题”。

我想知道是否有人可以对此有所了解?有没有其他人遇到过这个问题和/或找到解决方案?

这是我有问题的网站的链接。

web-server
  • 4 4 个回答
  • 3494 Views

4 个回答

  • Voted
  1. Mikael Lundberg
    2015-05-12T04:07:21+08:002015-05-12T04:07:21+08:00

    我们也遇到了这个问题,我们的解决方案是删除 HTML 中的所有标签,并使用带有背景属性的 css 类。这是一个例子:

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

    感觉有点尴尬,我知道,但这是为我们解决问题的唯一方法。一个缺点是我们必须删除图像的“alt”,但我想你可以在必要时使用一些 javascript 来解决这个问题。

    希望这可以帮助!

    • 2
  2. Kevin
    2015-06-24T06:41:44+08:002015-06-24T06:41:44+08:00

    我在我们刚刚推出的一个新网站上处理这个问题。在 FF/Opera/Chrome 等中一切看起来都不错,但我在 iOS8+ 中遇到了主要的图像交换问题。我注意到许多报告此问题的网站都运行 Litespeed 网络服务器。我切换到 Apache 进行测试,果然,网站加载得很好。我的主机(wiredtree.com,优质服务)和我查看了 Litespeed 中的一些配置选项,并禁用了这两个选项:

    • 启用压缩
    • 启用动态压缩

    禁用这两个后,网站加载正常,没有问题。它对性能的影响很小,但绝对值得。

    起初,我们尝试禁用 keep-alive 以有效禁用 HTTP Pipelining,但并没有解决问题。以上是我见过的唯一提供真正解决方案的东西。

    希望这可以帮助处理相同问题的人!

    • 2
  3. Otheus
    2015-04-16T09:13:42+08:002015-04-16T09:13:42+08:00

    不是答案,而是解决问题的方法:

    1. 使用生产中的 Web 服务器使用应用程序的开发版本自行重现问题。只要确保你覆盖它。
    2. 在网络服务器上创建一个新的主机名/CNAME 条目和相应的虚拟主机,或者如果第 3 步需要,在一个单独的端口上创建一个单独的 HTTP 服务器。这被称为“测试 HTTP 服务器”
    3. 将您的测试/开发版本指向这个新的 HTTP 服务器并重现问题。在你能做到之前不要进入第 4 步!
    4. 现在在这个测试 HTTP 服务器上,通过重定向或智能配置(尽可能使用 Apache),禁用 keepalives、压缩、https、缓存、流水线和任何你能想到的东西。重现问题并记下所有执行此操作和不执行此操作的配置元组。
    5. 用 Apahce 交换 Litespeed 服务器。同样,对于一个好的系统管理员来说应该是微不足道的。(咳咳)。重现问题。

    如果您可以通过第 5 步一直重现问题,并且没有任何配置更改或服务器软件更改产生影响,那么问题出在 iOS 上,您可能无能为力。(但这不太可能。)

    但是,如果有一组不依赖于 Litespeed 的配置更改(即,Apache 也会发生),那么我们可以做一个解决方法:使用BrowserMatch指令来检测特定的(一组)浏览器;为此设置 BrowserMatch 集设置配置参数。你会发现这种事情的例子可以追溯到 IE 3.0 和 Netscape 浏览器。

    如果问题出在 Litespeed,请使用上述方法并使用 Litespeed 支持提交错误。您正在为支持付费,不是吗?

    • 1
  4. Best Answer
    David
    2016-05-20T02:36:44+08:002016-05-20T02:36:44+08:00

    在我的情况下,使用 http/2 协议似乎已经解决了这个问题。但是,我确信这个问题可能有一个实际的修复/解决方案。

    • 1

相关问题

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 持续监控许多服务器运行状况的简单方法?

  • 构建家庭服务器时要考虑的要点[关闭]

  • 用于 Web 应用服务器的 FreeBSD 磁盘分区(Apache/MySQL/PHP)

  • 我需要在 Rackspace 专用/托管网络和数据库 (Linux) 服务器上安装防病毒软件吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve