<質問>
<ui:include src="#{operations.fileName}"/> を update させた際、#{operations.fileName}内の html に記載された <script>や<link>を、無効化を含めた調整をする方法について、ご存知であればご教授下さい。
若しくは、調整を可能にする為の異なる方法のご教授でも構いませんが、JSF等<環境>での記載の中で実施可能である事が必須になります。
<環境>
a) GlassFish 3.1.2.2
b) PrimaFaces 4.0
一寸古いですが既存環境の為更新は不可です。
また、"1)"と"2)" は、本来サポートする JSFのバージョンが異なっていたかと思いますが、対処済みですので無視して下さい。
<<詳細>>
現在 HTML の構成は、下記のようになっています。
index.xhtml 内の一部を動的なコンテンツとし、それぞれ別のxhtmlファイルとして作成しています。
index.xhtml
1<h:body> 2.. 3<ui:include src="#{operations.fileName}"/> 4.. 5</h:body>``` 6 7 8”<ui:include..” の部分の更新は、例えば、"<p:menuitem ... update=.." のような形式で、メニュー操作をトリガーに動的に更新を行っています。つまり、XMLHttpRequest を行い、<partial-response> を受信し、<ui:include>の部分に動的に展開される事になります。 9 10<課題> 11----- 12index.xhtmlにも#{operations.fileName}のページにも<h:head>があり、それぞれ primefaces に関連した script や css が記載されています。 13ただ、<ui:include> の更新の度に異なる #{operations.fileName} (xhtml)を読み込んでおり、javascript の重複読み込みが原因で一部挙動がおかしくなります。 14 15{operations.fileName}側の <h:head>を無効化させる事は容易いですが、利用している primefaces のコンポーネントによって、記載される<script>や<link>の内容は若干異なってきますので、必ず全てを無効化してしまう訳にもいきません。 16 17全ての <h:head>を無効にし、RequireJS あたりを使って javascript を個別に読み込み管理をさせてしまう手もありますが、ページ毎に必要となる javascript やCSS を効率良く抽出する方法が不明です。あまり手作業に依存させると、今後、保守改修を実施する際にミスの元になります。 18 19 20今後の保守改修を踏まえ、重複読み込みの防止と作業ミスの防止を双方効率良く実現する為に、効率の良さそうな方法についてご教授頂けると助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/24 09:39