【问题标题】:Iphone 3g browser rendering problems. Wifi is fineiphone 3g浏览器渲染问题。无线网络很好
【发布时间】:2011-06-01 16:46:01
【问题描述】:

我正在构建一个网站,该网站似乎在所有网络浏览器上都可以正常工作,除了 iPhone 在 3G 网络上。

由于某种原因,它没有正确显示,好像没有解析 CSS。作为我调查的一部分,我在 wifi 连接中尝试了相同的浏览器(iPhone Safari)并且页面呈现良好。

该页面是用经典的 ASP 编写的,有趣的是,如果我从 PC 浏览器复制呈现的源并为其提供 .htm 扩展名,当您在 3G 上的 iPhone 上查看它时,它呈现良好。相同的代码,这与经典的 ASP 和 3G 或移动公司的 3G 网络是否会做一些事情来阻止特定内容是否有些奇怪?

我也在诺基亚 3G Vodaphone 网络上试过这个,没问题。

所以,我相信这证实了iPhone浏览器没有问题,3G网络没有问题,代码没有问题,所以我似乎无法理解问题出在哪里,除了它是一个问题与特定的 3G 提供商联系。

也许有人以前见过这个并且有一个可以帮助解决这个问题的建议/解释?

【问题讨论】:

    标签: iphone css 3g


    【解决方案1】:

    您的 3g 网络提供商可能会插入一个代理来服务网页,例如用于缩小图像。它也可能会在页面中注入一些 JavaScript。这些事情可能是您问题的根源。某些 iPhone 浏览器允许您查看网页的来源,例如iCab mobile,因此您可以仔细检查网络提供商向浏览器提供的内容。

    只是猜测...

    【讨论】:

    • 感谢您提供此建议,以帮助了解退回的内容。看看这个,在某些情况下,它似乎正在删除空格:
      在交付的源中为: 其中,如果它是随机执行的,我并不感到惊讶表现得很奇怪。如果有解决方案,您以前见过吗?
    • @user779816 我以前没见过这个。代理可能会尝试删除不必要的空格,这在您的情况下会出错。使用 w3c CSS 和 HTML 验证器检查整个 HTML 的有效性 - 可能存在导致代理出错的故障,而浏览器通常更宽松。
    【解决方案2】:

    经过一番调查,问题的解决方案似乎是在使用外部 CSS 文件引用时不使用导入,3g 不喜欢某些服务提供商。

    【讨论】:

      【解决方案3】:

      我不久前遇到了这个问题,它是由 O2 完成的 css 和 javascript 压缩引起的,我发现解决方案是在这些文件中添加一个 HTTP Header "Cache-Control: no-transform" 响应指令。

      见:http://stuartroebuck.blogspot.co.uk/2010/08/official-way-to-bypassing-data.html

      另见Web site exhibits JavaScript error on iPad / iPhone under 3G but not under WiFi

      对于任何需要在 ASP.NET 中解决此问题的人,这将根据使用 URL 重写模块 2.0 http://learn.iis.net/page.aspx/665/url-rewrite-module-20-configuration-reference 的 javascript 文件设置 Cache-Control 标头。

      <system.webServer>
              <rewrite>
                  <outboundRules>
                      <rule name="Compression header" preCondition="Match JS Files">
                          <match serverVariable="RESPONSE_Cache-Control" pattern="(.*)" />
                          <action type="Rewrite" value="no-transform" />
                      </rule>
                      <preConditions>
                          <preCondition name="Match JS Files">
                              <add input="{RESPONSE_CONTENT_TYPE}" pattern="(javascript)$" />
                          </preCondition>
                      </preConditions>
                  </outboundRules>
              </rewrite>
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签