【问题标题】:safari loads css/js very slow on client certificate SSL websitesafari 在客户端证书 SSL 网站上加载 css/js 非常慢
【发布时间】:2017-03-09 07:57:48
【问题描述】:

我有一个网站,我使用客户端证书来访问该网站,并且它需要 SSL 才能运行。它在 Windows Server 2012 R2 上的 IIS 8.5 上运行。

我所有的 css 和 javascript 都被压缩成 4 个单独的文件

app.js -> 我们自己的javascript

app.css -> 我们自己的 css

vendor.js -> 外部 javascript 库

vendor.css -> 外部 css 库

所有这些文件都被缩小并本地放置在服务器上。

在计算机上使用 chrome 或 IE 时,该网站运行良好,但在使用 safari 时(仅在 PC 上尝试过 safari 5,在 iphone 6/7 上尝试过最新的 safari),页面可能会停留在“加载”模式。并非每次都发生这种情况,当它发生时,它通常有助于清除 safari 中的缓存并重试。

该网站还使用本地存储来保存一些用户数据,以及用于存储身份验证令牌的 cookie。不确定这是否有用的信息,只是把它扔在那里。

它可以连接到网络服务器,因为我们可以看到 EV+ 证书。

在 Mac 上调试手机或 PC 上的 safari 并查看开发人员窗口中的网络选项卡时,我可以看到有时浏览器需要很长时间才能加载某些 css 和/或 javascript 文件.

有时它似乎是 vendor.js,有时是 app.css,有时是其他的。对我来说似乎没有逻辑,它总是相同的文件等。

该站点是.NET 4.6站点,运行在前面有angularjs、signalr 2.2.1和html5。

我们已经尝试过

  • 监控 IIS 日志和网络流量
  • 删除 css/js 上的 sourcemap 以减小文件大小
  • 尝试引用signalr/hubs(生成的js文件)。并且还尝试将内容复制到 vendor.js 中,因此有一个本地版本

没有任何成功的ATM。我真的很感激帮助,感觉卡在这个上。

非常感谢!

【问题讨论】:

    标签: javascript css angularjs mobile safari


    【解决方案1】:

    可能是动态压缩。你在服务器上使用 Brotli 压缩吗?

    我建议对 HTTP 请求和响应标头进行详细分析。可能存在导致这种意外行为的差异。我会继续搜索 Safari 错误跟踪器。

    SSL 证书本身可能是问题所在,或者更确切地说是 Safari 对政策的解释。

    希望对你有帮助。

    【讨论】:

    • 不,我不是。会去看看
    • 但是文件很小。例如 vendor.js 是最大的,为 1.7mb,而有时 safari 会卡在 32kb 的 app.js 上(根据 chrome 网络选项卡)
    • 我建议使用动态压缩,因为 Brotli 是一种相对较新的压缩格式,当服务器尝试在第一次请求时压缩文件时,我遇到了 IIS(网络服务器)的一些问题(因此 '动态'压缩)
    • 我确定你已经完成了,但我只能建议一个完整的 Web 服务器跟踪,详细分析 HTTP 流量(使用 Fiddler、Charles 等 HTTP 代理),特别是 HTTP请求和响应标头。
    • 如果不是 Safari 对稍微偏离的东西做出反应,那么它一定是工作站环境中的东西。 DNS、代理、缓存、防火墙或由特定代码触发的罕见浏览器错误错误的结果。
    猜你喜欢
    • 2017-05-16
    • 1970-01-01
    • 2013-08-04
    • 2010-10-16
    • 2017-04-28
    • 2012-02-15
    • 2017-05-18
    • 1970-01-01
    • 2020-12-09
    相关资源
    最近更新 更多