0

現時点での設定は次のとおりです。

リンクをクリックすると、次のコードが実行されます。

$("#main-content").load(url);

メイン コンテンツに読み込む URL はほとんどが html で、上部に 3 つのスクリプト タグ、下部に 3 つのスクリプト タグがあります (読み込まれます)。

コード自体は正常に動作し、ローカルでは問題はありませんが、サイトを公開して CDN を追加すると、Javascript が失敗し始めました。さらに調査した結果、スクリプトは JQuery によってシリアルにロードされていないようです。スクリプトを次のように定義しましたが、

<script type="text/javascript" src="a.js"></script>
<script type="text/javascript" src="b.js"></script>
<script type="text/javascript" src="c.js"></script>

a.js は b.js よりも待ち時間が長く、後で評価されるため、JS エラーが発生します。

JQuery が JS ファイルを解析して dom 自体にアタッチすることは知っていますが、これはシリアルで行われていると思いました。誰かが以前にこの問題に遭遇したことがありますか、またはそれを修正する方法について何か考えがありますか?

4

1 に答える 1

1

理由がわかりました。JQuery はすべてのスクリプト タグを解析し、AJAX 要求を介してソースを取得し、それを評価します。これにより、AJAX 要求が最初に終了したものが最初に評価されるという事実につながります。CDN が a.js の前に b.js を返したため、コードが壊れていました。

回避策として、yepnope.js を使用して並列にロードし、シリアルで実行します。または、requirejs を使用します。

于 2012-07-13T11:04:06.783 に答える