ウェブアプリケーションのトップページ等にポートレットを設置する場合、
各ポートレットの中身の記述にはIFRAMEを使う方法と直接HTMLを記述する方法があると思います。
この2種類の方法、それぞれメリットとデメリットがあるのでしょうか。
それと、何となく世の中でIFRAMEが避けられている印象があるのですが
何か実用上の理由があるのでしょうか(漠然とした印象なので気のせいかも)
個人的にはIFRAMEの方が親ページとポートレットの中身の明確な分離ができて良いと思うのですが。
皆さんならどちらを使いますか?
そしてその理由は何でしょうか?
No.4ベストアンサー
- 回答日時:
ポートレートと勘違いしていました。
すみません。「ポートレット」はサーバー側で処理し、
パーツ(ポートレット)を組み立てて1つのHTMLドキュメント全体を生成する、その一過程となると思いますから、
1つのHTMLファイルに埋め込む方がいいと思います。
そうしないと、フレームの数だけリクエストが増え、サーバーの負荷も増えると思います。
リクエスト開始
↓
<head>タグ出力
<body>タグ、およびヘッダ出力
<div>ポートレット</div> ← ポートレット取得
<div>ポートレット</div> ← ポートレット取得
<div>ポートレット</div> ← ポートレット取得
↓
クライアントへ
-----フレームにした場合
リクエスト開始
↓
<head>タグ出力
<body>タグ、およびヘッダ出力
<iframe 1>タグ出力
<iframe 2>タグ出力
<iframe 3>タグ出力
↓
クライアントへ
・<iframe 1>より
リクエスト開始
↓
<head>出力
<body>、およびヘッダ出力
<div>ポートレット</div> ← ポートレット取得
↓
クライアントへ
・<iframe 2>より
リクエスト開始
↓
<head>出力
<body>、およびヘッダ出力
<div>ポートレット</div> ← ポートレット取得
↓
クライアントへ
・<iframe 3>より
リクエスト開始
↓
<head>出力
<body>、およびヘッダ出力
<div>ポートレット</div> ← ポートレット取得
↓
クライアントへ
No.3
- 回答日時:
>もし良ければフレームを使った方が良いケースを教えて頂けると嬉しいです。
使った方が「良い」かどうかはわかりません。
No.2に書いた通り、ファイルを個別に管理できるメリットがありますから、
CGI系が使えないときで、ファイルを個別に管理したいときに使用しています。
また、専用のCGI(ニュースCGI、RSS表示CGIなど)などを既存ページに入れることができない、しにくい時など(CGIアプリの改変ができない、禁止されているなど)も、
<iframe>などでCGIを個別に呼び出した方が作りやすくなります。
SSIとCGIを併用することで既存ページに入れることは可能な場合もありますが、<head>などの重複出力などの問題も出てきます。
No.1参考サイトのフレームの問題にも上げられている通り、デメリットは多いですから、
(問題に対応するための作り方というのはありますが、煩雑になりやすい。)
可能ならフレームを使わない方がいいと思います。
オーサリングソフトを使えるなら、
Dreamweaverならライブラリやテンプレートを使用することで、CMSと同じ処理をオーサリングソフトに行わせることが可能ですから、フレームを使う必要はなくなります。
No.2
- 回答日時:
ポートレートだけを更新したい場合、フレームを使用していればポートレートだけ更新すればいいですが、
フレームのないページに埋め込んでいる場合、そのページからポートレートの部分を探し出して更新する必要があります。
CMSでは、そういう作業(ファイルのどの部分にポートレートが書かれているかを探す)はすべてCMSが行ってくれますから、
更新作業の手間を省くことができます。
>個人的にはIFRAMEの方が親ページとポートレットの中身の明確な分離ができて良いと思うのですが。
本来のフレームの目的はその通りですが、
CMSが一般化して、個別に管理する必要がなくなったから、フレームも使われなくなりました。
>皆さんならどちらを使いますか?
状況次第ですね。
フレームを使う必要がなければ使いませんし、使う方が良ければ使います。
ありがとうございます。
> CMSが一般化して、個別に管理する必要がなくなったから、フレームも使われなくなりました。
つまり、デフォルトはフレーム不使用なんですね。
もし良ければフレームを使った方が良いケースを教えて頂けると嬉しいです。
No.1
- 回答日時:
まずiframeは、HTML4.01strict・XHTML1.0strict、XHTML1.1では使えません。
HTML4.01frameset・HTML4.01strictでは使えます。そして、
【引用】____________ここから
著者
・・・【中略】・・・
HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4 適合条件: 必須事項と推奨事項( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
これが一番の根拠でしょう。
iframeに限らず、frameには多くの問題を抱えています。
★frame 問題 html - Google 検索 ( http://www.google.co.jp/#sclient=psy-ab&hl=ja&sa … )
これが実用的な面での問題点です。
基本的にiframeは使いません。
>個人的にはIFRAMEの方が親ページとポートレットの中身の明確な分離ができて良いと思うのですが。
これは、HTMLをきちんと文書構造にしたがってマークアップすれば済みます。
<div class="section">
<h2>本文見出し</h2>
<p>段落</p>
<div class="article">
<div class="header">
・・・ヘッダ・・・
</div>
<div class="section">
・・・本文・・・
</div>
<div class="footer">
</div>
</div>
</div>
HTML5だと
<section>
<h2>本文見出し</h2>
<p>段落</p>
<article>
<header>
・・・ヘッダ・・・
</header>
<section>
・・・本文・・・
</section>
<footer>
</footer>
</article>
</section>
になります。
ここで例示したclass名については、
HTML4.01仕様書
【引用】____________ここから
DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
★HTML5 における HTML4 からの変更点/新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )の要素名とその意味を参考にしています。
ありがとうございます。
一番にくるのはやはり、非推奨要素であるという一種の思想的な問題ですよね。
実用面については、作成するウェブアプリケーションの性格上・・・
・プリントアウトすることは無い
・ページではなくポートレットでの使用なのでブックマークとは関係なし
・公開サービスではないので検索エンジンとは関係なし
・サポートするブラウザは制限して販売しているので非対応ブラウザは関係なし
ということで、私が調べた限りでは実用上の問題が見つかりませんでした。
どれも、ウェブアプリケーションのポートレットとして使うIFRAME、
という観点では関係無さそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- 日本語 「~人」と「~名」の使い分け 2 2022/06/02 11:59
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- SEO WP内の検索で403エラーが出される問題について 1 2022/11/26 08:46
- 法学 不正アクセス禁止法の扱いについて 4 2022/03/23 18:13
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- 日本語 心証という熟語について 5 2023/04/07 12:42
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTML属性での「""」 「''」違い
-
<div id="container">の使いか...
-
htmlのolやulなどlistにtitleや...
-
インラインフレームのページ内...
-
スペースを使わず文字位置を揃...
-
複数のボタンを等間隔に、かつ...
-
HTML5 iframe の代わり
-
横並びdivで一部の初期高さがず...
-
<!-- #BeginLibraryItemとは
-
div要素が重なってします
-
HEADタグとheaderタグ
-
divとpの使いわけ
-
標題<h1>に、網掛けはできますか?
-
htmlの見出しタグ(<h1>)の次...
-
画面を縮小するとカラムが落ち...
-
フッターがウインドウの一番下...
-
CSSで、contentsがfooterに重な...
-
特定範囲内のCSSの継承を断ち切...
-
セクションをdivで囲むと見出し...
-
背景画像に全体または部分的に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
HTML属性での「""」 「''」違い
-
div要素が重なってします
-
<div id="container">の使いか...
-
複数のボタンを等間隔に、かつ...
-
html の divとtable の役割
-
divとpの使いわけ
-
ヘッダーとフッターだけ背景を...
-
min-heightとheightの違いについて
-
セクションをdivで囲むと見出し...
-
画面を縮小するとカラムが落ち...
-
ヘッダーを左右に二分割する方...
-
1時間30分を簡単に表したいで...
-
スペースを使わず文字位置を揃...
-
CSSで、contentsがfooterに重な...
-
h1に自分自身へのリンクを張...
-
divの中に外部のHTMLを埋め込む
-
divを横に並べる方法
-
hタグの右横に画像を表示
-
h1のテキストサイズよりh2の方...
おすすめ情報