JSコードの実行に時間がかかるため、ブラウザがロックされます。
私はそれをで分割することができましたsetTimeout
、それはうまくいくでしょう。しかし、その後、コードを再構築する必要があります。良いライブラリがあれば、コードを再構築しなくても(多すぎて)可能になるはずです。
それで、それを提供するjs libはありますか?疑似コルーチンのようなものですか?
互換性の理由から、Webワーカーは使いたくありません。
編集:私はlibが何をするか尋ねられました。さて、このコードを考えてみましょう。
dosomething();
for(var x=0; x<w; x++) {
for(var y=0; y<h; y++) {
dosomething2();
}
}
dosomething3();
setIntervalで分割できるので、ブラウザに制御を戻す前に、たとえば外側のループを10回だけ繰り返します。しかし、それにはコードを何度も再構築する必要があります。libは、私がそれをより簡単に行えるようにするために、いくつかのトリックを行うことができます。たとえば、C#langでは、ジェネレーターとasyncキーワードが(実際には2つの方法で)可能です。