1つのページに2つのカウンタを表示することについて

[上に] [前に] [次に]
アフロダイテ 2000/06/02(金) 11:51:13
こんにちは。
いつもこのラウンジ(緑・赤)を参考にさせてもらっています。


カウンタを使用するのに、通常は1つの画像、もしくは
SSIによるテキストカウンタの表示を1つだけ行いますよね。

それを、

1)1つのスクリプトで1つのカウント記録ファイルを参照し、
  2つ以上Webページ上に表示させる。つまり、1つの
  Webページ上で1つのカウンタスクリプトを2回以上呼び出す。

  <img src="count01.cgi?gif"> <!-- カウント記録ファイルAを参照 -->
  <!--#exec cgi="count01.cgi?nocount"> <!-- カウント記録ファイルAを参照 -->


2)2つ以上のスクリプトで1つのカウント記録ファイルを参照し、
  2つ以上Webページ上に表示させる。つまり、1つの
  Webページ上で2つ以上のカウンタスクリプトを各1回ずつ呼び出す。
  (ただしカウント記録ファイルの参照はスクリプトの数だけ行う)

  <img src="count01.cgi?gif"> <!-- カウント記録ファイルAを参照 -->
  <!--#exec cgi="count02.cgi?nocount"> <!-- カウント記録ファイルAを参照 -->


3)2つ以上のスクリプトで各1つずつのカウント記録ファイルを参照し、
  2つ以上Webページ上に表示させる。つまり、1つの
  Webページ上で2つ以上のカウンタスクリプトを各1回ずつ呼び出す。

  <img src="count01.cgi?gif"> <!-- カウント記録ファイルAを参照 -->
  <!--#exec cgi="count02.cgi?nocount"> <!-- カウント記録ファイルBを参照 -->

サーバー:UNIX
スクリプト:とほほカウンタ
      (引数「nocount」を渡すことでカウント数インクリメント
       しないように処理改造済み m(_ _)m )

このようにして、同じカウント数を別々の形態で表示させたいのですが、
うまくいかない場合があります。
具体的な現象は、「それぞれの表示カウント数がずれてる」というものです。
先の例を用いると、IMGタグで表示させたカウンタよりもSSIで表示させたカウンタが
1つ少ないというものでした。

きっちり両方のカウント表示をそろえるようにするにはどう処理したら
よいのでしょうか。インクリメント処理をするタイミングと、
カウント数を参照するタイミングがどう前後してるのかが全くわかりません。
それをコントロールできる術もあるのかどうか・・・・

ちなみに、提示した3つの方法のうち1と2を試してみましたが
どちらもカウント数がずれる現象が発生しました。
3はまだ試していません。

いいアドバイスがあったらお願いします。m(_ _)m

Syn [E-Mail] 2000/06/02(金) 11:58:09
SSI は httpd がコンテンツを UA に送る「前に」処理されます。
IMG 要素呼び出しの CGI は UA がコンテンツを受け取った「後に」
処理されます。

とゆーわけで、 IMG のほうを nocount にすればよいのではないで
しょうか。

アフロダイテ 2000/06/02(金) 12:42:13
Synさん、アドバイスありがとうございます。
なるほど、呼び出し方によって処理するタイミングって
明らかに違ってたんですね。そういう仕組みだったのですね。


そこでさらに追加質問です。m(_ _)m

カウンタスクリプトを改造して、カウント数によって
違う画像を表示するようにしていました。
それとはまた別に、数字を表現する画像を表示させています。

   <img src="count01.cgi?gif">
       <!-- カウント数によって違う画像を表示 -->
   <img src="count02.cgi?gif+nocount">
       <!-- カウント数を数字として読み取れる画像を表示 -->
       <!-- つまり普通のカウンタ -->

このように利用したい場合は、どうしたらよいのでしょうか?
SSIが利用できないサーバーで設置することも考慮しているので。

それと・・・ 「UA」というのは「User Agent」の略だと解釈していいのでしょうか?
つまりはブラウズするユーザー側のほう・・・と。

Fuji.♪ [E-Mail] [HomePage] 2000/06/02(金) 13:09:00
そのように、スクリプトを書き換えて出力する画像を変えてやれば良いのではないでしょうか。 (^^;
としか答えようがありませんが。

widthとheightを出力していないのであればあまり問題はなさそうですが。

アフロダイテ 2000/06/02(金) 15:55:33
[[解決]]
Fuji♪さん
そうですね。スクリプト1個で画像2つを出力する・・・・
がよさそうですね。

チェックファイルをもう1つ作って、そこに最初に参照したスクリプトは
カウントをインクリメントし、あとから参照したスクリプトは
カウントをインクリメントしない、というのも考えてみました。

まだどちらも実行してませんが、Perlの勉強のためにもがんばってみます。

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

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