C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: マスタページとフレーム


(過去ログ 33 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■16281 / inTopicNo.1)  マスタページとフレーム
  
□投稿者/ おいろん (1回)-(2008/04/02(Wed) 13:42:24)

分類:[ASP.NET (VB)] 

お世話になります。
マスタページとフレームについて、質問させていただきたいと思います。

<自分なりの認識>
・マスタページ
 ページの共通部分を定義できるHTMLページのパーツ。
 コンテンツページ表示時にマスタページと合わさって1つのページとして表示される。
 あくまで「ページの一部」なので、コンテンツページのみ更新する等機能はなく、
 使用してもページ全体が更新される。

・フレーム
 画面を分割して1つの画面に複数のページを表示することができる。
 この場合分割されたページ1つ1つが独立しているので、一部のページのみを
 更新することが可能。
 分割されたページ間を超えての処理が複雑になること、
 指定されるURLが正しくページを示さないこと等問題がありASP.netでは非推奨。

<やりたいこと>
マスタページを使用して共通部分を定義しつつ、
更新時はコンテンツページのみ更新したい。

<疑問>
現状、「やりたいこと」の内容はマスタページのみでは難しいと思ってます。
(コンテンツページをAJAX Update Panelにのせるのもありですが難しいので・・・)
となると、フレームを使用するしか実現できないのですが、
フレームが問題となる決定的な理由がわからないでいます。

・フレームは○○という致命的な問題があるので絶対使用すべきではない
 (○○ができなくなる、不安定になる、機能がつかえなくなる、など)
・そもそも「やりたいこと」に書かれていることは現状不可能
 (機能不足、仕様など)


といえるような決定的な理由があればご教示いただけないでしょうか。
よろしくお願いいたします。



<環境>
OS :Windows XP Professional SP2
環境:Visual Studio 2003
   .netFramework 2.0
言語:VB.net


引用返信 編集キー/
■16286 / inTopicNo.2)  Re[1]: マスタページとフレーム
□投稿者/ シャノン (355回)-(2008/04/02(Wed) 14:23:11)
No16281 (おいろん さん) に返信
> <やりたいこと>
> マスタページを使用して共通部分を定義しつつ、
> 更新時はコンテンツページのみ更新したい。

例えば、Microsoft のこんなサイト
http://msevents.microsoft.com/cui/default.aspx?culture=ja-JP
がやってることに近いのかと思います。
たぶん Ajax を使ってるんだと思いますが、イベントを検索して、結果が複数ページにわたるとき、ページの一番下までスクロールしておいてから次のページに切り替えると、スクロール位置が元に戻りません。
かねがね不便だと思っています。

> ・フレームは○○という致命的な問題があるので絶対使用すべきではない
>  (○○ができなくなる、不安定になる、機能がつかえなくなる、など)

ASP.NET は詳しくないので、ASP.NET とフレームの相性が悪いかどうかはわかりません。
それを除けば、致命的というほどの問題はないと思います。
いくつか考えられる理由としては
・XHTML 1.1 以降で使えない
・フレームの中に特定のページを表示した状態でのブックマーク(フレームの中に表示されているページの記憶)ができない
・a リンクを張るときは気をつけないと、意図せずフレーム内に表示されてしまう
といったところでしょうか。
引用返信 編集キー/
■16288 / inTopicNo.3)  Re[1]: マスタページとフレーム
□投稿者/ Mr.T (212回)-(2008/04/02(Wed) 14:32:44)
Mr.Tです、こんにちは。

>  指定されるURLが正しくページを示さないこと等問題がありASP.netでは非推奨。

ASP.NETでは、というよりW3C的には、非推奨だったり、禁止だったり、なくなったりしてます。
だから、それに準拠してASP.NETでもフレーム構成ではなく、マスタページを
利用してよ、となったのではないかと思ってます。

>
> <やりたいこと>
> マスタページを使用して共通部分を定義しつつ、
> 更新時はコンテンツページのみ更新したい。

これがわからんです。
どうして更新時には、コンテンツページのみを更新する必要があるのでしょうか?
Webアプリケーションは、基本、コレですよ?
#Ajaxだってあるけどさ。

> ・フレームは○○という致命的な問題があるので絶対使用すべきではない
>  (○○ができなくなる、不安定になる、機能がつかえなくなる、など)
> ・そもそも「やりたいこと」に書かれていることは現状不可能
>  (機能不足、仕様など)
>
>
> といえるような決定的な理由があればご教示いただけないでしょうか。
> よろしくお願いいたします。

いや、今のところ、決定的に「機能として」使えないということは、まだ
ないと思ってます。
しかし将来的に廃止される可能性はあるかもしれません>今の流れからして

引用返信 編集キー/
■16289 / inTopicNo.4)  Re[2]: マスタページとフレーム
□投稿者/ おいろん (2回)-(2008/04/02(Wed) 14:39:28)
No16286 (シャノン さん) に返信

シャノン様
早速の返信ありがとうございます。

> 例えば、Microsoft のこんなサイト
> http://msevents.microsoft.com/cui/default.aspx?culture=ja-JP
> がやってることに近いのかと思います。

まさにそのとおりです。


> たぶん Ajax を使ってるんだと思いますが、イベントを検索して、結果が複数ページにわたるとき、ページの一番下までスクロールしておいてから次のページに切り替えると、スクロール位置が元に戻りません。
> かねがね不便だと思っています。

なるほど〜!これは痛いところを突かれました。
部分更新すると(部分更新が原因?)確かにスクロール位置が元に戻らないですね。
使用者からみると不便ですね。


> ASP.NET は詳しくないので、ASP.NET とフレームの相性が悪いかどうかはわかりません。
> それを除けば、致命的というほどの問題はないと思います。
> いくつか考えられる理由としては
> ・XHTML 1.1 以降で使えない
> ・フレームの中に特定のページを表示した状態でのブックマーク(フレームの中に表示されているページの記憶)ができない
> ・a リンクを張るときは気をつけないと、意図せずフレーム内に表示されてしまう
> といったところでしょうか。

なるほど、いろいろ問題ありますよね〜。
しかし致命的なほどではありませんか・・・。
これでなぜ非推奨なのか謎なところがあります・・・・・・。

引用返信 編集キー/
■16290 / inTopicNo.5)  Re[2]: マスタページとフレーム
□投稿者/ おいろん (3回)-(2008/04/02(Wed) 14:48:59)
No16288 (Mr.T さん) に返信
> Mr.Tです、こんにちは。

こんにちは。返信ありがとうございます。

> ASP.NETでは、というよりW3C的には、非推奨だったり、禁止だったり、なくなったりしてます。
> だから、それに準拠してASP.NETでもフレーム構成ではなく、マスタページを
> 利用してよ、となったのではないかと思ってます。

規格そのものが非推奨ということですか・・・。
Microsoftがどーのこーのいってるわけではないのですね。
ちょっと勘違いしてました。


>><やりたいこと>
>>マスタページを使用して共通部分を定義しつつ、
>>更新時はコンテンツページのみ更新したい。
>
> これがわからんです。
> どうして更新時には、コンテンツページのみを更新する必要があるのでしょうか?
> Webアプリケーションは、基本、コレですよ?
> #Ajaxだってあるけどさ。

よくいわれます・・・。欲の出しすぎで申し訳ないです。
AjaxのUpdateパネルでは、部分更新により通常よりもネットワーク負荷を下げるメリットが
あると聞いております。
共通部分は更新する必要ないのですから、コンテンツページのみ部分更新すれば
同じようにネットワーク負荷を下げられるのではないかと考えております。
コンテンツページに大量データが行き来することを考えると、なおさらです。


> いや、今のところ、決定的に「機能として」使えないということは、まだ
> ないと思ってます。
> しかし将来的に廃止される可能性はあるかもしれません>今の流れからして

XHTML以降では使用できなくなってますし、廃止がもう目の前まできているので、
将来的にブラウザが対応しなくなりつかえなくなる・・・ってことも
ありえるというわけですね。そうなると致命的ですねぇ。

ありがとうございました。

引用返信 編集キー/
■16291 / inTopicNo.6)  Re[3]: マスタページとフレーム
□投稿者/ Mr.T (213回)-(2008/04/02(Wed) 15:05:12)
> AjaxのUpdateパネルでは、部分更新により通常よりもネットワーク負荷を下げるメリットが
> あると聞いております。

たしかに部分更新の場合は全面更新よりも一回の通信量はへるかもしれません。
しかし、考えてみると、AJAXを使うとクライアントスクリプトによって、サーバへ通信して
ページ再描画が行われます。
では、部分更新が大量にプログラムされたページ内では、サーバへの通信頻度がどのくらい
あがるでしょうか?
さらに、ユーザが、無駄にかちかち操作しちゃってパケットがガンガン飛んできた場合も
サーバは律儀に対応します。

さらに、サーバへの通信頻度があがれば、中でDBへの通信頻度が上がる
可能性だってあります。(データ更新とかね)
ネットワークよりも、そっちを先に対応しなくちゃいけないようになりませんか?

> 共通部分は更新する必要ないのですから、コンテンツページのみ部分更新すれば
> 同じようにネットワーク負荷を下げられるのではないかと考えております。
> コンテンツページに大量データが行き来することを考えると、なおさらです。

大量ってどのくらい大量になるのでしょう。
そんなに大量のデータが一回の更新で必要になるのですか?
必要かもしれないなぁ、くらいではなないですか?

通信量を減らすのに懐疑的というのではないですが、それは目を向ける場所が違う
んじゃない?という気がします。
#違うかなぁ?
引用返信 編集キー/
■16292 / inTopicNo.7)  Re[3]: マスタページとフレーム
□投稿者/ シャノン (356回)-(2008/04/02(Wed) 15:15:50)
2008/04/02(Wed) 15:17:30 編集(投稿者)

No16289 (おいろん さん) に返信
>>たぶん Ajax を使ってるんだと思いますが、イベントを検索して、結果が複数ページにわたるとき、ページの一番下までスクロールしておいてから次のページに切り替えると、スクロール位置が元に戻りません。
>>かねがね不便だと思っています。
>
> なるほど〜!これは痛いところを突かれました。
> 部分更新すると(部分更新が原因?)確かにスクロール位置が元に戻らないですね。
> 使用者からみると不便ですね。

スクロール位置が戻ることは、ページ全体がリロードされることに付随する現象ではあるけれども、不可分な現象ではないと思います。
可能かどうか知りませんが、例えばスクリプトによってスクロール位置を操作することが考えられるでしょう。

マスタページ的にサイドメニューのようなものを埋め込むことと、フレームを使うことの違いをもう一つ思いつきました。
埋め込みはメニューもコンテンツも一緒にスクロールしますが、フレームはコンテンツだけスクロールさせることができます(ひょっとしたら埋め込みメニューでも CSS によってコンテンツのみスクロールする擬似フレームを作れるかもしれませんが)。
埋め込みですと、やはりコンテンツを一番下までスクロールしているとき、メニューを操作しようと思ったら、一度上まで戻らなければならないという不便さがあります。
この点、フレームは便利なのですよね。
余談ですが、埋め込みサイドメニューがスクロールに従って、常にブラウザウィンドウの上辺にくっつくように移動するサイトがありますが、ああいうのは個人的に激しくウザいです。
本題に戻って、これは、例えばページ下部に「<前のページ 次のページ>」のようなリンクを設けることである程度解消できますが、そもそも、「スクロールが必要ない程度にコンテンツの分量を分ける」のが正道ではないかと考えたことがあります。
そうすると、スクロールを戻しさえすればよいという考えにも「ちょっと待って」をかけたくなりますね。
引用返信 編集キー/
■16293 / inTopicNo.8)  Re[3]: マスタページとフレーム
□投稿者/ シャノン (357回)-(2008/04/02(Wed) 15:20:51)
No16290 (おいろん さん) に返信
>>しかし将来的に廃止される可能性はあるかもしれません>今の流れからして
>
> XHTML以降では使用できなくなってますし、廃止がもう目の前まできているので、
> 将来的にブラウザが対応しなくなりつかえなくなる・・・ってことも
> ありえるというわけですね。そうなると致命的ですねぇ。

今のフレームは、いずれ廃止されるでしょう。
が、W3C は、それに代わる規格として「XFrames」というのを策定しています(まだ策定作業中ですが)。
これは HTML フレームの諸問題を解決しているようです。
いつ勧告になるかわからず、勧告になってもブラウザがすぐに対応するわけではない(特にIEは遅い)という問題がありますが、将来への希望は残されていますということで。
引用返信 編集キー/
■16294 / inTopicNo.9)  Re[3]: マスタページとフレーム
□投稿者/ シャノン (358回)-(2008/04/02(Wed) 15:22:55)
No16290 (おいろん さん) に返信
> AjaxのUpdateパネルでは、部分更新により通常よりもネットワーク負荷を下げるメリットが
> あると聞いております。
> 共通部分は更新する必要ないのですから、コンテンツページのみ部分更新すれば
> 同じようにネットワーク負荷を下げられるのではないかと考えております。
> コンテンツページに大量データが行き来することを考えると、なおさらです。

共通部分としてどのようなものを想定されているかにもよりますが、メニュー程度であれば、コンテンツページに比べてデータ量は微々たるものだと思いますので、毎回更新してもいいかと思います(あくまでデータ量を基準に考えた場合)。
共通部分が動画とかになると、毎回取得はやめたほうがいいと思いますけど。

で、俺は主にユーザビリティの観点から考えているつもりです。
引用返信 編集キー/
■16296 / inTopicNo.10)  Re[4]: マスタページとフレーム
□投稿者/ おいろん (4回)-(2008/04/02(Wed) 15:26:42)
> たしかに部分更新の場合は全面更新よりも一回の通信量はへるかもしれません。
> しかし、考えてみると、AJAXを使うとクライアントスクリプトによって、サーバへ通信して
> ページ再描画が行われます。
> では、部分更新が大量にプログラムされたページ内では、サーバへの通信頻度がどのくらい
> あがるでしょうか?
> さらに、ユーザが、無駄にかちかち操作しちゃってパケットがガンガン飛んできた場合も
> サーバは律儀に対応します。
>
> さらに、サーバへの通信頻度があがれば、中でDBへの通信頻度が上がる
> 可能性だってあります。(データ更新とかね)
> ネットワークよりも、そっちを先に対応しなくちゃいけないようになりませんか?
>
>>共通部分は更新する必要ないのですから、コンテンツページのみ部分更新すれば
>>同じようにネットワーク負荷を下げられるのではないかと考えております。
>>コンテンツページに大量データが行き来することを考えると、なおさらです。
>
> 大量ってどのくらい大量になるのでしょう。
> そんなに大量のデータが一回の更新で必要になるのですか?
> 必要かもしれないなぁ、くらいではなないですか?
>
> 通信量を減らすのに懐疑的というのではないですが、それは目を向ける場所が違う
> んじゃない?という気がします。
> #違うかなぁ?

うーむ。おっしゃるとおりのような気がします。(先ほども書いててちらっと思ったのですが・・・)
通信は更新だけでなく、データ取得(検索)でも発生します。
これが何千件と大量になると通信負荷が増大します。
しかし・・・。全体更新を部分更新にしたからといって
何千件ものデータ量がくることを考えれば微々たるもの。
全体更新・部分更新を気にするより、何千件ものデータが1度にこないように
ページに分けたり工夫したほうが意味あるのでは?

・・・ということをおっしゃっていると理解しています。

そうですね・・・。そのとおりですね。うーむ。
となると、あとは見た目の問題になってしまうのでしょうか・・・
(ページ全体が切り替わるのが目に余る、とか?)
そこは我慢するしかないようですね。
引用返信 編集キー/
■16297 / inTopicNo.11)  Re[4]: マスタページとフレーム
□投稿者/ おいろん (5回)-(2008/04/02(Wed) 15:32:28)
No16293 (シャノン さん) に返信
> 今のフレームは、いずれ廃止されるでしょう。
> が、W3C は、それに代わる規格として「XFrames」というのを策定しています(まだ策定作業中ですが)。
> これは HTML フレームの諸問題を解決しているようです。
> いつ勧告になるかわからず、勧告になってもブラウザがすぐに対応するわけではない(特にIEは遅い)という問題がありますが、将来への希望は残されていますということで。

おおっ! そうなのですか。なんか某社の車のような名前ですねぇ。


> 共通部分としてどのようなものを想定されているかにもよりますが、メニュー程度であれば、コンテンツページに比べてデータ量は微々たるものだと思いますので、毎回更新してもいいかと思います(あくまでデータ量を基準に考えた場合)。
> 共通部分が動画とかになると、毎回取得はやめたほうがいいと思いますけど。
>
> で、俺は主にユーザビリティの観点から考えているつもりです。


なるほど。Ajax等使ってやろうと思ったらできるけど共通部分に動画等重いものをつかってないかぎり、
それほどメリットがなさそうですね。
マスタページのコンテンツにAjax使おうとしてめんどうな思いをしたことがあるので、
メリット少ないところで複雑性を増しても意味がなさそうですねぇ。

引用返信 編集キー/
■16298 / inTopicNo.12)  Re[4]: マスタページとフレーム
□投稿者/ Mr.T (214回)-(2008/04/02(Wed) 15:33:16)
> これは、例えばページ下部に「<前のページ 次のページ>」のようなリンクを設けることである程度解消できますが、そもそも、「スクロールが必要ない程度にコンテンツの分量を分ける」のが正道ではないかと考えたことがあります。

同意。
マウスホイールなんかでスクロールするのに手間がかからなくなったとはいえ、
一画面に収まらないのは、人にとってもワンクッション挟むことになりますからね。

引用返信 編集キー/
■16305 / inTopicNo.13)  Re[5]: マスタページとフレーム
□投稿者/ おいろん (6回)-(2008/04/02(Wed) 16:09:07)
シャノン様、Mr.T様

お世話になります。

・フレームにはいまのところ致命的な問題はないが、今後廃止の予定で将来性なし(新しい規格策定中)
・部分更新はやろうと思えば実現可能だが、そこまでしておこなってもメリットが少ない。
 部分更新よりも、一画面に収める等、コンテンツのレイアウトに調整をするべき。

以上の点から、私の<やりたいこと>(部分更新)は実現可能でもリスクが大きくメリットが少ないと
認識しました。

おかげさまで長きにわたる悩みが解決しました。
本当にありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -