te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>safari - javascript alert freezing iOS Browsers - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

safari - javascript alert freezing iOS Browsers - Stack Overflow

programmeradmin3浏览0评论

I'm facing some strange bug while developing a webapp in jquery-mobile. When I prompt an alert, if i touch some input of the page, iOS Safari & Chrome gets totally freezed and I only can close them with the Task Manager.

I'm very confused if it's apple fault or it's mine.

Some piece of code:

$('.checkout-prar-button').click(function(){                 
  alert("hola!!!");
});

This is the div of the event:

<div class="grp-bottombar-button checkout-prar-button" style="width: 50% !important; float: right !important; display: block !important; padding-top: 12px;">
        <span class="green-desplegable grp-bottombar-button-text">
             <? echo _("checkoutcreditcard.seguirpra"); ?>
        </span>
</div>

And this is one of the inputs:

<div class="checkout-datos-numero checkout-first-form checkout-form-field-container">
   <div class="checkout-field">
      <input type="tel" placeholder="<? echo _('creditcard.numero'); ?>" name="" id="checkout-num-tarjeta" maxlength="30" />
   </div>
</div>

After the alert is shown, if I want to focus some of the inputs, the browser freezes. When I force close Safari, this is the message that console gave me:

<Warning>: MobileSafari[2985] has active assertions beyond permitted time: 
    {(
        <BKProcessAssertion: 0x1e857480> identifier: Suspending process: MobileSafari[2985] permittedBackgroundDuration: 10.000000 reason: suspend owner pid:26 preventSuspend  preventThrottleDownCPU  preventThrottleDownUI 
    )}
<Warning>: Forcing crash report of MobileSafari[2985]...

Any help? Thank you

I'm facing some strange bug while developing a webapp in jquery-mobile. When I prompt an alert, if i touch some input of the page, iOS Safari & Chrome gets totally freezed and I only can close them with the Task Manager.

I'm very confused if it's apple fault or it's mine.

Some piece of code:

$('.checkout-prar-button').click(function(){                 
  alert("hola!!!");
});

This is the div of the event:

<div class="grp-bottombar-button checkout-prar-button" style="width: 50% !important; float: right !important; display: block !important; padding-top: 12px;">
        <span class="green-desplegable grp-bottombar-button-text">
             <? echo _("checkoutcreditcard.seguirpra"); ?>
        </span>
</div>

And this is one of the inputs:

<div class="checkout-datos-numero checkout-first-form checkout-form-field-container">
   <div class="checkout-field">
      <input type="tel" placeholder="<? echo _('creditcard.numero'); ?>" name="" id="checkout-num-tarjeta" maxlength="30" />
   </div>
</div>

After the alert is shown, if I want to focus some of the inputs, the browser freezes. When I force close Safari, this is the message that console gave me:

<Warning>: MobileSafari[2985] has active assertions beyond permitted time: 
    {(
        <BKProcessAssertion: 0x1e857480> identifier: Suspending process: MobileSafari[2985] permittedBackgroundDuration: 10.000000 reason: suspend owner pid:26 preventSuspend  preventThrottleDownCPU  preventThrottleDownUI 
    )}
<Warning>: Forcing crash report of MobileSafari[2985]...

Any help? Thank you

Share Improve this question edited Nov 15, 2013 at 19:03 Irene Knapp 1458 bronze badges asked Jul 17, 2013 at 10:00 hardlinkinhardlinkin 1011 silver badge8 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 10

There appears to be a MAJOR bug in the iOS browser. When I use the alert after an onChange event in a select the alert pops up with an OK button. Clicking the OK button doesn't do anything else. In face, the ENTIRE browser locks up. The only resolution is to hit the home or power button and kill the browser app.

As of December 13th, 2013 this issue is not fixed. I've submitted to Apple. Others have as well. I can't figure out why they are so slow to fix this MAJOR issue.

I used the code posted in the question and was unable to replicate the problem; However, I have had similar problems before and found a solution.

I ran into a similar problem when using Mobile Safari inside a web view in a native iOS app. Wrapping the alert message in a setTimout solved the deadlock issue for me. There was a question asked on this topic and it was answered here: Calling [JSValue callWithArguments:] locks UI when alert() is called

using this solution, your piece of code would look like this:

$('.checkout-prar-button').click(function(){                 
   window.setTimeout(function () {alert("hola!!!");},0);
});

I finding now it doesnt freeze but now it crashes and reloads the page

I had to change calling alert(...) to jquery-confirm

发布评论

评论列表(0)

  1. 暂无评论