2012-02-09 9 views
1

それは大きな違いがありませんが、私は知っているが、JSF 2 I出力できます1 2の方法で(例えばCSSのための)リソース、中:JSF:リソースコンポーネントは最適化されていますか?

a)は標準のHTML <link>コンポーネントを使用し、コンポーネントへの絶対パス。これはテキストとして扱われるため、コンポーネントには組み込まれません。

b)jsf <h:stylesheet>を使用し、名前とライブラリを設定します。

メインテンプレートサイト(変更されないもの)を書いているのであれば、プレーンテキストを使用して、リソースへの絶対パスを与えるほうがいいですか?それとjsfコンポーネントを使用する間に、たとえ重要ではないとしても、パフォーマンスに変化はありますか?

JSFはこのページへのアクセスを最適化するので、ページがレンダリングされるたびにリソースを見つける必要はありませんか?

すべてのタイプのリソース、画像、およびjavascriptで同じことが起こります。

答えて

3

を参照してください...

<h:outputStylesheet library="css" name="style.css" /> 

HTML出力に従うようHTMLに変換されますイオンは実際に使用されているJSF実装に依存していますが、MojarraとMyFacesの両方がリソース処理のパフォーマンスを高度に最適化しています。サーバー側とクライアント側のキャッシングのすべての可能性が説明されています。最もアクセスされたリソースはサーバーのメモリにキャッシュされ、I/O転送はチャネルを経由し、適切なETagLast-Modified応答ヘッダーが設定されます。Mojarraの場合、どのように処理されるかを確認する出発点としては、com.sun.faces.application.resource.ResourceHandlerImpl#handleResourceRequest()方法。

+0

ああ、本当にありがとう、実際のところ、このキャッシュのためにプレーンテキストとjsfコンポーネントの間にパフォーマンスの違いはありませんか?これは非常に面白いです、私は実際にリソースを出力するためにjsfコンポーネントを使用するとパフォーマンスのペナルティか何かがあると思っていました – arg20

1

そのない<h:stylesheet>しかし<h:outputStylesheet>

JSFコンポーネントを使用すると、すべてのJSFコンポーネントが自動的に応じてに変換されているすべてのJSFコンポーネントを見つけることができませんあなたがあなたのページのソースコードを見ると、したがって、レンダリング時には通常のHTMLに変換され、 htmlコンポーネント。

このタグは

When render CSS file via <h:outputStylesheet /> tag, remember put the <h:head /> 
tag as well; Otherwise the css file will not render successful. 

警告

<link type="text/css" rel="stylesheet" 
    href="/JavaServerFaces/faces/javax.faces.resource/style.css?ln=css" /> 

がoptimizat http://www.mkyong.com/jsf2/how-to-include-cascading-style-sheets-css-in-jsf/

関連する問題