読み込み後に重い JavaScript コードを実行するページがありました。読み込み時にページがフリーズするのを防ぐために、(タイムアウトを使用して) 間に「非実行」時間を置いて実行をバッチに分けたところ、うまくいきました。
最近、クライアント アクションで実行できる追加の重い JavaScript コードを追加する必要がありましたが、これらのアクションは、元の重いスクリプトの実行が完了する前でも発生する可能性があります。今回は、アクションの間隔を空けても役に立ちません。1 つのスクリプトの「ダウンタイム」で別のスクリプトが実行され、その逆もまた同様であり、ブラウザがフリーズするからです。
このようなアクションが複数あり、それぞれが異なる重いスクリプトを実行し、各スクリプトには、他のものと比較してどれだけ速く終了させたいかという「優先度」があるため、実際には問題はより複雑です。
私の質問は、そのような状況での一般的な慣行は何ですか? 私はそれを解決する方法を考えてみましたが、私が考えることができたのは、JavaScriptでオペレーティングシステムを書くのとほとんど同じような非常に複雑な解決策、つまり、X回ごとに実行される「マネージャー」コードを書くことでした( 「割り込み」)、どの「コンテキストに切り替えるか」( = 現在実行するジョブ) などを選択します。
しかし、これは私にはかなり複雑に聞こえます。他の解決策があるかもしれないと思っていました. 私の問題は、多くの人が以前に遭遇したと思われる問題のように思えます。そのため、唯一の解決策が私が提案したものであっても、誰かが既に書いているか、ライブラリのサポートがあると思います。
どんな助けでも大歓迎です。ありがとうございました。
== 編集 ==
「重いコード」とは、たとえば、多数の要素の DOM 操作を意味します。