javascript フレームワークで requirejs の使用を開始しましたが、firefox でのみ発生するように見える問題に気付きました。
サーバーからのリクエストには、表示したいコンポーネント (ボタン、ラベル、チェックボックスなど) の html と JavaScript が含まれています。JavaScript には、コンポーネント固有の情報が含まれます。たとえば、ラベルのテキストの色。
簡単な例は次のとおりです。
<button type="button" id="button123">Test</button>
require(['BUTTONDEPENDENCY'], function() {
register("button123");
console.log("component info");
...
});
このシムのようなものです。
BUTTONDEPENDENCY = /js/button.js
リクエストには、これらのコンポーネントに関する情報を含む JSON 配列も含まれています (詳細については説明しません)。JSON 配列は、html/javascript がブラウザーにロードされた後に実行されます。
JSONArray 内の各オブジェクトを実行するとき、getComponent()
関数を実行する必要があります。実行しようとしてgetComponent('button123')
も、require 関数が実行されていないため見つかりません (実行する必要がありますregister("button123");
)。実際には実行されますが、見つからない後です。Chrome ではこの問題は見られないので、これはタイミングの問題であると推測しています (Chrome は依存関係をより速くロードしますか?)
Chrome で正常に動作するのはなぜですか?
以前にモジュールにロードしたことがあるのに、ロードに時間がかかるのはなぜですか?
登録が実行されるまで getComponent を実行する前に JavaScript を強制的に待機させる必要がありますか? これにより、アプリケーションで問題が発生する可能性があります
どんなアドバイスも素晴らしいでしょう。