WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:画像の自動切換え(×表示させない)

たなぴ [WriteDate : Wed Jun 6 17:09:29 2001]

 現在setTimeoutを使って、image.jpgという画像を繰り返し表示すると言う方法で、image.jpgが置き換わってもすぐに更新画像が表示されるようにしています。
 しかし、これだとタイミングが悪い(image.jpgファイル生成中)と、web上では×マークになってしまいます。
 そこで、とりあえず×マークを表示されないように、画像ファイルを出来るだけリアルタイムに表示する方法は無いでしょうか?
 ex1)ファイルが完全に読み込めたことを確認してから、表示する
 ex2)ファイルが不正な場合は表示更新しない(旧画像のまま)
等…です。
 よろしくお願いします。


ふじ [URL] [WriteDate : Wed Jun 6 18:44:57 2001]

image.jpg を直接上書きするのではなくて、

新しいファイルを例えば new.jpg として生成をしてから
mv new.jpg image.jpg
(Perl なら rename 'new.jpg' 'image.jpg')
とかすればいいのでは。


たなぴ [WriteDate : Thu Jun 7 09:37:42 2001]

既に mv ではなく、cp でやってみたのですが、だめでした。
※ 逆に、生成側でnew.jpgがアクセスされてない(読み込み終了)を確認してから上書きするのもいいかも。
 出来るのかな?自分でも調べてみます。ちなみに、生成側はlinux(gcc)を使っています。


YK [WriteDate : Thu Jun 7 10:16:30 2001]

img要素のsrc属性でCGIのURIを指定して、CGIでは、image.jpgが存在するまでsleepして標準出力するとか。


ふじ [URL] [WriteDate : Thu Jun 7 13:08:13 2001]

> 既に mv ではなく、cp でやってみたのですが、だめでした。
cp は、「コピー元のファイルの内容を読み取って、コピー先のファイルの
サイズを0にして、コピー先ファイルに書きこむ」
という動作をします。つまり、ファイルの内容が中途半端なタイミングが
存在することになります。
一方、mv は(同一ファイルシステム内(パーティション)の場合)、
ディレクトリに保持されているファイル名の情報のみを書き換えますので、
ファイルの内容が不完全なタイミングは存在しません。
・・・そういうことかなあ?
# しかし(それほど大きくないであろう) jpg ファイルの cp に
# そんなに時間がかかるとも思えないけど。

> 生成側でnew.jpgがアクセスされてない(読み込み終了)を確認してから上書きするのもいいかも。
これの意味がちょっと分からないのですが。
new.jpg が完全に出来上がってから cp してない、ってことですか?

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World