私は、Telerik MVC コンポーネントを使用する最初の MVC アプリの構築に忙しくしています。彼らのドキュメントでは、ScriptRegistrar
ヘルパーがビューの一番下、たとえば「マスター ページの最後」で呼び出されることを指定しています。これにより、ページが読み込まれたときにのみ実行する必要があるスクリプト ブロックがレンダリングされると思います。私は通常、jQuery を使用してこれを実現することを好み、すべてのスクリプト関連のものをマスター ページの上部 (できれば<head>
タグ内) に保持します。Telerik コンポーネントでこれを達成し、マスター ページの下部にある忘れられたヘルパー呼び出しをなくすためにできることはありますか?
2 に答える
ScriptRegistrar には 2 つの主な役割があります。
- UI コンポーネントに必要な JavaScript ファイルをレンダリングする
- UI コンポーネントの JavaScript 初期化スクリプトをレンダリングする
ScriptRegistrar がページの最後にある必要がある理由について説明があります。これは、レンダリング中にすべての UI コンポーネントを登録する必要があるためです。ライフサイクルがないため (ちなみにこれは良いことです)、ScriptRegistrar は最後に表示 (レンダリング) する必要があります。そうしないと、UI コンポーネントの登録が遅すぎて、ScriptRegistrar が既に出力を吐き出してしまいます。
あなたの質問に答えるには - はい、ScriptRegistrar を省略して、必要な JavaScript ファイルを自分で含めることができます。ただし、UI コンポーネントを手動で初期化する必要があります。後者は可能ですが、文書化されていません。
ScriptRegister ブロックによって生成されたコードは、次の行に沿っています。
<script type="text/javascript" src="/asset.axd?id=dgAAAB-LCAAAAAAABADsvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee--997o7nU4n99__P1xmZAFs9s5K2smeIYCqyB8_fnwfPyJ-8Uezjx597xd_tPro0Uevp3WxapuPRh-d82dL-uynf9E6r6-3d8f743vjn8Z31UePdn7J93_J90cfTVtq0Obv2rs_nV1mDb9NDS7p072d3d0x_be7e58-mVIf9z69T7989Kit1_kv-X8CAAD__9hh2r92AAAA"></script>
どのスクリプトがレンダリングされているかについての手がかりはありません。ただし、FireFox のクイック ピークは、jQuery をロードしていることを示しています。scriptregister ブロックから始めて、Firebug を使用してその呼び出しを把握し、それをすべて jQuery インクルード (および他のスクリプトが検出された場合) に置き換えてみることをお勧めします。