すべてのUIWebViewは1つのWebスレッドを共有します。UIWebViewがブロックをブロックしてWebスレッドをロックしようとすると、メインスレッドがフリーズしないようにする
init
-edをスーパービューなどから削除した場合、メインスレッドのメインスレッドからブロッキング方式でロックして、メインスレッドの実行ループを一時的にフリーズしようとします。
ウェブスレッドがビジー状態の場合、長い同期の間にXMLHttpRequest
、これは長い時間メインスレッドをブロックする可能性があります。
これを回避する手段はありますか?
もし私がUIWebViewを変更することができたら、私はロックの試みをノンブロッキングにしたいと思いますが、明らかにそうではないので、他の巧妙なアイデアを探しています。
ページが低速の同期XHRを実行する場合、MobileSafariはどうなりますか?私はそれをテストしていないが、それはちょうど凍結か何ですか? –
要求の間、Webスレッドのロックを取得します。メインスレッドがロックを取得しようとすると、要求が完了するまで待機する必要があります(またはタイムアウト) – rpetrich
また、非同期XHRを使用する場合、これはもはや問題になりません(つまりxhr。 – rpetrich