• 締切済み

ナビゲーションの変更を全ページに反映させるには?

一般のHPで、ブログのように左の帯にナビゲーションを、 右に記事内容を配置した場合についてお尋ねします。 記事を追加した場合、左の帯のナビゲーション部分に新しい記事 のリンクを反映しなければなりません。 たとえば、記事ごとのページが100ページあったとして、 すべてのページに、リンクの追加を反映させる方法として、 1.JavaScriptでページ読み込み時に書き出す。 2.<iframe>を使う 3.SSIを使う 4.サーバーサイドスクリプト(たとえばPerlによるCGI)   で、記事を追加したタイミングですべてのファイルを書き換える。 などが考えられます。 そこで質問です。 一般のブログではどの方法がとられているのでしょうか? 1では無いことは明らかです。 2でもなさそう... それとも1~4のどれでもないのでしょうか? 3の方法は可能なのですが、できれば4の方法を採りたいです。 プロバイダ(Hi-Ho)加入時に標準でついてくるWeb環境の場合、 変更を反映させるページが100ページ程度の場合の一括更新 って、プロバイダ側から見るとかなりきついものなのでしょうか? (1ページはせいぜい10KB~20KB程度) よろしくおねがいします。

みんなの回答

  • W_H
  • ベストアンサー率47% (21/44)
回答No.2

状況が分かりました。 いくつかブログを見ても、仕組みはよく分からないので負担について。 処理負担は、回数と処理量と処理時間と時間の間隔によって決まるのは分かりますよね?(時間の間隔:処理と処理の間の時間) ページの一斉更新と、ページ読み込み時にファイルを読み込むのでは、恐らく読み込みの方がサーバー負担が少ないでしょう。 ファイルの一斉更新は回数が少なく、時間の間隔が大きいですが、一回の処理量が大きく、処理時間が長いです。 ただ、読み込みは、相当かなりの人気があるページでない限り、それほど負担にはならないでしょう。 アクセスカウンターがいい例です。あれはかなりアクセス数があっても、それほど大きな負担をかけているとは言い難いです。(負担のせいで動かないとか表示されないとかはあまり聞いたことがない。) ファイルの読み込みは処理回数が多い代わりに、処理量や処理時間が少なく、時間の間隔も大きいです。なので、総合的処理量が一斉更新より大きいとしても、時間の間隔が入るので、上手く負担を拡散してくれます。 後、サーバーは無茶な事をしない限り、滅多な事で負担がかかると言う事はないです。いくつかフリーのホームページスペースを使ってきましたし、いくつもCGIを設置してきましたが、普通に掲示板を設置するくらいでは何も言われません。ファイルの読み込みだけと掲示板とでは、恐らく掲示板の方が負担が大きいですから、大丈夫でしょう。

noname#181870
質問者

お礼

ありがとうございます。 サンプルを作ってみたのですが、100ページ程度の一括更新 ですと、それほど負荷はかからなかと...?タブン。 しかし、もし、アクセス解析を付けようとすると、SSIでログるのが 断然イイですし、だったらSSIで「決定」という感じです。 JavaScript、<iframe>はSEO的に「チョット...」なので、 やめておきます。

  • W_H
  • ベストアンサー率47% (21/44)
回答No.1

企業のブログを使っていない上に、自分のホームページでCGIの日記を作って使ってるものです。 よく知らないのですが、ブログは全てHTMLファイルなのでしょうか? 一応、そこら辺は詳しくないので、HTMLファイルとして出力され、ストックされていると仮定して、技術的なことについて答えます。 ファイルの書き換えはできます。 ブログのファイルは不特定多数のパターンがあるわけではなく、自分で決めた形です。ならば、書き換えは容易です。 まず、その更新する箇所の上下に、コメントを追加しておきます。 ファイルを更新するときには、そこまでのデータとそれ以降のデータの間に分割し、間だけデータを書き換え、それをまとめてファイルに書き込めばいいです。 もっと出力をスマートにしたいなら、タグを解析して、あるタイミングで(例えば一つ目の<table>の中の二つ目の<td>まで読み込んだら)そこのデータを読み出し、書き換えると言う手もあります。 それを、特定フォルダの中にあるHTMLファイル全てに適用させればいい訳なので、それら全てのパターンが同じであるブログなら、非現実的方法ではないと思います。 ただ、やっぱりブログは日々積み重ねられるもの。そんなことしていたら、サーバーの負担でしょうね。 システムが作れるなら、自分のパソコンで実行してみてください。それより遅いと思えば、大体の感覚がつかめるのではないでしょうか? 参考までに、ぼくが同じことをするなら、<iframe>を使います。ただ単に更新が楽でSSIを使わない方針という理由からなのですが。 その場合、データが途中で途切れて醜くなりますが、CGIの処理で文字数をきっちり定めて、CSSでがっちり文字サイズやフレームの大きさを固定し、枠線やスクロールバーなどを消し去ると言う手もあります。 HTMLをがっちり固めすぎるのはあまり推奨できませんし、ユーザー指定の文字の大きさにはなりませんが、余裕のある文字の大きさにしておけば、不満は出ないでしょう。 後言い忘れましたが、javascriptで「ファイルを書き出す」のではなく、データを「読み込む」という手も考えられます。つまり、更新データを別ファイルで保存し、それを読み込めば、こんな労力は要らないかと。

noname#181870
質問者

補足

ご回答ありがとうございます。 言葉が足りなかったかもしれませんが、私はブログを使っている者では ありません。 一般のHPで、ブログ風のスタイルがでいきないかなぁと思っています。 私の頭の中には、プロバイダのWeb領域を「間借り」しているため 先ず、サーバー負荷というのがありまして、どの方法がいいのかなぁ? と... サーバー負荷を考えた場合、HTMLファイルが最も軽いですよね。 ですが、HTMLファイルは静的な物ですので、記事へのリンクが更新され たら(左の帯のナビゲーションの構成が変更されたら)それに関連する 個々のHTMLファイルを全て再構成する必要があります。 >javascriptで「ファイルを書き出す」のではなく、データを「読み込 >む」という手も考えられます。つまり、更新データを別ファイルで保 >存し、それを読み込めば、こんな労力は要らないかと」 これはSSIで実現できます。 ページへのアクセスがあるたびにSSIでファイルをインクルードする 方がサーバー負荷が少ないのか、100ページ度なら、ナビゲーション (リンク)の構成が変更された時点で、関連する全てのファイルを一気 に更新するほうが負荷が少ないのか...? それとも、ブログ専門サイトは他の方法を使っているのでしょうか?