UIWebViewがWebスレッドをブロックしてロックしようとしたときにメインスレッドがフリーズしないようにします

StackOverflow https://stackoverflow.com/questions/1431594

  •  07-07-2019
  •  | 
  •  

質問

すべてのUIWebViewは単一のWebスレッドを共有します。

それらの1つが init で処理され、スーパービューなどから削除されると、メインスレッドからWebスレッドをブロックする方法でロックしようとするため、一時的に実行ループがフリーズしますメインスレッド。

ウェブスレッドがビジーの場合、たとえば長い同期 XMLHttpRequest を実行している間、これによりメインスレッドが長時間ブロックされる可能性があります。

これを回避する方法はありますか?

UIWebViewを変更できる場合は、ロックをブロックしないようにしますが、明らかにそうではないため、他の賢いアイデアを探しています。

役に立ちましたか?

解決

長所と短所:Webスレッドをかなりの時間ブロックするものは何もしない( window.alert window.prompt XMLHttpRequest.open( 'GET'、url、false)、場合によってはその他)

また、Webスレッドをロックするメソッドを呼び出してから、制御が実行ループに戻された後にのみWebスレッドがロック解除されるため、すぐに長時間かかる処理を行わないでください。 (例:-[UITextView setText:] を呼び出してから、メインスレッドで同期的にファイルを読み取ります)

他のヒント

クロスドメインポリシーエラーが発生するため、同期xhrを作成できません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top