5

ページの読み込みを高速化するために、JSF で JavaScript ライブラリ (Richfaces、Primefaces、独自のもの) の読み込みを遅らせる最良の方法は何ですか?

Google PageSpeed プラグインが言うように、サイトが完全に読み込まれたときに JavaScript を解析することをお勧めします。<body>これを実現する 1 つの方法は、タグの最後に JavaScript の読み込みを配置することです。別の方法として、タグに「defer」属性を付ける方法があります。これは、私が見たように<script>、JSF のタグでは実行できません。<h:outputScript>

それで、あなたはこれをどのようにしますか?

4

2 に答える 2

5

を使用し<h:outputScript target="body">ます。その後、 の最後で終了し<h:body>ます。つまり、デフォルトでビュー内の「現在の」位置になります (別のtarget値は、スクリプトが のどこかに指定されている場合でも、スクリプトが でhead終了するようにするものです)。<h:head><h:body>

<h:outputScript name="js/foo.js" target="body" />

これをサードパーティのスクリプトにも適用する場合は、 と を使用して正確にそれを行うカスタムSystemEventListenerフックを作成する必要があります。PreRenderViewEventUIViewRoot#getComponentResources()UIViewRoot#addComponentResource()

于 2012-04-25T13:02:20.907 に答える
0

それが重要かどうかわからない(回避策と呼ぶことができます)、

しかし、いつでも外部のxhtmlページにいくつかのjsファイルを含めることができます。ui:includeこれはメインページに含まれ、それによってラップされ、js / jqueryの助けをほとんど借りずに、いくつかの非表示で<h:panelGroup id="externalPageWrapper" render="#{myBean.renderExternalPage}"実行でき、trueに変更されてレンダリングされます。そのxhtmlページとその中に含まれていたすべてのjsファイルをロードします....click()h:commandButtonf:ajaxrenderExternalPageexternalPageWrapper

于 2012-04-25T09:55:08.170 に答える