私の場合、RequireJS は約半分の時間で機能します。ページを更新すると、負荷の問題がランダムに発生します。
私はそれを使用するために小さな MVC プロジェクトを適応させ、次のようなことをしています: RequireJS は複数のページと部分ビューでどのように機能しますか?
main _layout.cshtml からの読み込みを行う共通の main.js があります。上記の手法を使用するウィジェットやその他の場所の他の部分ビュー。以下の例は、私のサインイン ページからのものです。
<script type="text/javascript">
require(["jquery", "kendo", "domReady!"], function ($, kendo) {
$("#signInForm").kendoWindow({
draggable: false,
width: "500px",
modal: true,
title: "Sign In",
resizable: false
});
});
</script>
Chrome は、main.js (パス マッピングとその他の構成が定義されている場所) の前にインライン スクリプトを読み込んで処理することがあるようです。「domReady」を要求しても違いはありません。
このスクリプトを、require.js と main.js が実行されるまで待機させるにはどうすればよいですか?
理想的とは言えないフォールバックは、jQuery をそのグローバル スコープに戻し、何らかのカスタム イベントを使用することです。もっと良いアイデアはありますか?または、RequireJS に組み込まれている方法はありますか?
更新:これは、_layout.cshtml で現在使用している回避策です。
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script type="text/javascript">
function requireIt(requirements, callback) {
if ($(document).data("requireReady") === true) {
require(requirements, callback);
} else {
$(document).bind("requireReady", null, function () {
$(document).data("requireReady", true);
require(requirements, callback);
});
}
}
</script>
<script data-main="/scripts/main" src="@Url.Content("~/Scripts/require.js")" type="text/javascript"></script>
jQuery はグローバル フィクスチャに戻り、インライン スクリプトを含む部分ビューはこの requireIt ラッパーを使用します。そして、main.js が requireReady をトリガーします。