ページ全体を瞬時に更新する方法は?

[上に] [前に] [次に]
くて [E-Mail] 2000/05/22(月) 17:10:36
ホームページの質問というよりは、サイト管理の質問なのですが、
ここでいいでしょうか?

質問:複数のファイルからなる web サイトの内容を瞬時に新版に切り替える
定石テクはあるのでしょうか?

たとえば、http://hoge.jp に index.html と  a.htmlとが
あったとします。index.html には a.html へのリンクがあります。。
    index.html -> a.html
index.html には商品名 A のことが簡単に書いてあり、a.html は
もっと詳細な説明です。
明日から商品名が変更になるので、作業用ディレクトリで、
index.html と a.html の内容を変更し、web サイトにアップロード
します。このとき:

(1) index.html と a.html の両方がアップロードされてから
index.html を訪ねて来た人には、新版をみてほしい。
(2) 両方ともアップロードが完了するまでに index.html を訪ねて
来た人には、旧版を見てほしい。

これはファイル2つからしかない単純な例なので、アップロード自体
がすぐ終わってしまい、現実的な問題にはなりにくいのですが、
例えばファイル100個からなる巨大サイトで、互いのページを
参照しあっている場合、ファイルをひとつずつアップロードして
いくと、アップロード中にナビゲート中の人は、矛盾した内容を
見ることが考えられます。(旧商品名と新商品名が混じっている等。)
このようなことを避けたいのですが、定石はあるのでしょうか?

松下 2000/05/22(月) 17:17:35
邪道ですが、
事前に商品ファイルを別ディレクトリーに作成しておく。
新しいリンクのindex.htmlを必要なときにアップロードする。

2000/05/22(月) 17:22:25
お勧めはしませんが、以下の手順を行えばできると思います。

1.index.html以下のファイル名を変更し、index.htmlのリンクを変更後のファイル名にあわせる。
2.index.html以下のファイルだけをサーバにアップロードする。
3.index.htmlをサーバにアップロードする。
4.旧ファイルをサーバから削除する。

旧ファイル名のままで利用したければ、この作業後に旧ファイル名に戻して、同じ作業を繰り返せばいいでしょう。
ただ、少々面倒な手順なのでお勧めはしませんが。

dddd 2000/05/22(月) 17:25:54
全部ftpし終わってから仮想ディレクトリのパスを変えればいいだけじゃない?

ヒソカ 2000/05/22(月) 19:07:41
↑簡単でナイスな方法だと思う。
でも赤で質問しているんだから、それ以上の事を求めているのかな?
例えば、前日にFTPしておいて、当日になったらリンク先を切りかえる
ようなスクリプトとか?
考えすぎ?

R.M [E-Mail] 2000/05/23(火) 00:21:56
通常とは異なる拡張子でアップロードしておいて
アップロードが全て終わってからスクリプトで一気に拡張子を変更とか

くて 2000/05/23(火) 13:52:10
[[解決]]
皆様悩んでいただきありがとうございます。
一応確認ですが、仮想ディレクトリを切り替えるというのは、
http://www.hoge.jp/
が参照している実体のディレクトリツリーを二つ用意して
おいて、使ってない方に新しい内容を全部アップロードした
後で切り替えればいい、ということですよね?

はい、この方法で、現実的にはほとんど問題はないとは思います。
ただ、論理的には、切り替え直前にホームページを見始めた人が、
切り替え後にリンクをクリックすると更新された方のファイルへ
飛んでしまったり、そもそもファイルがなかったり、ということ
が起こり得るので、もっとエレガントな方法はないのかと思い
質問しました。

しかし、どうやら、そんな細かいことは世の中では問題になら
ないようなので、この件は実質解決ということにしたいと思いま
す。重ね重ねありがとうございました。

ヒソカ 2000/05/23(火) 15:19:48
昨日開いたページをブラウザを閉じずにそのままにしておいて、
次の日リンクをクリックするってことも現実的にはありえます。
一度表示したHTMLはサーバー側にあるのではなくて、
クライアント側にあるんです。
で、そういうことまで神経質になる必要のあるサイトなら、
cookieを使うなり、POST or GET でセッションデータを
持たせるなりして、有効期限を設定してやるものです。
更新時には有効期限より若干長めの時間クローズして、
変わりに再開時間を表示してやればいいんです。
直接、金銭を扱うショッピングカートのようなシステムを
組むときにはこういったことも必要になるでしょう。
まあ、その時にはページは動的に更新するシステムも
欲しくなるんですけどね。

[上に] [前に] [次に]