【问题标题】:Crashing Safari on iPhone 4/4s (iOS 7.0.1) when zooming in on text input field (and only when zooming)iPhone 4/4s (iOS 7.0.1) 上的 Safari 在放大文本输入字段时崩溃(并且仅在缩放时)
【发布时间】:2014-05-08 07:57:57
【问题描述】:

在运行 iOS 7 的 iPhone 4/4s 上放大我们网站上的文本字段时,Safari 始终崩溃。我们的网站在 iPhone 5 和台式机上运行良好。

复制:

1) 使用 iPhone 4/4s 访问www.panabee.com

2) 使用两个术语(例如,“stackoverflow Rocks”)运行搜索。

3) 加载结果页面后,放大顶部的搜索字段。调整搜索词。 Safari 崩溃。您必须缩放。如果您在不缩放的情况下调整搜索词,则该网站可以正常工作。

以下 jQuery 代码在编辑文本字段时执行:

function text_field_onclick( field ) {
    field = $( field );
    if ( field.hasClass('tip') ) {
        field.removeClass('tip');
        field.val( '' );
    }
}


function text_field_onblur( field ) {
    field = $( field );
    if ( !field.val() ) {
        field.addClass('tip');
        field.val( field.attr('tip') );
    }
}

为什么 Safari 会崩溃?是我们网站的问题吗?

【问题讨论】:

  • 您是否查看过崩溃日志以查看是否有任何问题?
  • iOS 7.0 是出了名的崩溃,尤其是在旧设备上。这是苹果的错,不是你的。
  • 如果您确定,@AndrewMedico,请将其发布为答案,假设没有人反驳您,我们会给您赏金。
  • @JackPattishallJr.不,我们没有仅仅因为我们将原因隔离到缩放行为。在移动 Safari 上查看崩溃日志的最佳方式是什么?
  • @Crashalot 我会使用 xcode。插入设备后,您应该会看到“管理器”启动。您可能需要将设备配对以供开发使用才能访问日志。完成所有设置后,您将看到设备日志,并希望能够对日志进行符号化以查看导致其崩溃的原因。过去,我曾使用此过程来解决我们的移动 Web 应用程序中的崩溃问题(内存不足、webkit 渲染问题等)

标签: javascript ios iphone safari mobile-safari


【解决方案1】:

发生这种情况是因为“内存不足”,这是内存问题。iPhone5 的内存比 iPhone4 和 iPhone4s 的大。这就是为什么这不会发生在 iPhone5 上。这是一个性能问题。请提高您的应用程序的性能或解决内存问题。也许在您的应用程序中,某些函数正在使用更多内存,这就是发生这种情况的原因。

【讨论】:

    【解决方案2】:

    问题确实是内存问题,消除崩溃的唯一方法是提高页面性能。我建议使用完整的构建页面,然后开始逐个删除部分,直到页面可以正常工作为止。

    作者在blogpost 中描述,删除一条评论可以使错误消失。

    整个过程真的很痛苦,但是没有其他可能调试这种类型的错误。

    另请注意:在开发模式下,浏览器本身用于渲染和页面性能的内存较少。所以关闭开发可以产生很大的不同。

    【讨论】:

      猜你喜欢
      • 2014-12-27
      • 2015-04-26
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2023-03-17
      相关资源
      最近更新 更多