WEB相談室

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

タイトル:≪CGIを呼びっぱなしにする方法ってないですか?≫

みや [MAIL] [WriteDate : Fri Jun 8 14:05:41 2001]

はじめまして。
イントラを組んでいて、問題にぶつかりましたので
質問してみました。

■目的
アクセスカウンターの設置を考えています。
ページA内でボタンが押下されたら
アクセスカウンターのCGIをコールして、
サーバー側のログファイルにログを出力する仕様です。
※ただし、ボタン押下処理ではページ遷移しません。

■障害
問題は、CGIを呼びっぱなしにする方法がわからないことです。
クライアントスクリプトでボタン押下時にLocation.hrefで
CGIを読んでしまうとページが切り替わってしまうし、
ボタン押下時にCGIを呼ぶので、IMGタグにCGI呼び出しを
埋め込む方法も無理です。

以下はシステムの性質上、避けたい対処方法です。
@隠しフレームの使用
A新ウィンドウ(ブラウザ)を起動する方法

■環境
サーバーOS:WindowsNT4.0Server
サーバーサイドスクリプト:VBScript
クライアントサイドスクリプト:JavaScript
クライアントブラウザ:IE5、NS3、NS4.7


誰か、対処方法が分かる人がいたら教えてください。
よろしくお願いします。


ふじ [URL] [WriteDate : Fri Jun 8 14:48:36 2001]

基本的には、カウンタの処理が終わったら HTTPのステータスコード 204
を出力してあげればブラウザは画面を変えないはずです。
# VBScript + IIS でどうやればいいのかは分かりませんが。


みや [MAIL] [WriteDate : Fri Jun 8 15:10:43 2001]

みや。
さっそく返答ありがとうございます。
提案していただいた方法を調査してみます。
結果が出ましたら掲示板に報告します。


みや [MAIL] [WriteDate : Fri Jun 8 17:31:15 2001]

そのCGIで本来の処理が終了したら画像を返すようにしておいて
IMGタグに読み込む方法で解決しました。
// <IMG id=dummy src="hoge.jpg">
// <INPUT type=button onClick="document.dummy.src='hoge.cgi'">

HTTPのステータスコードについても大変勉強になりました。
ありがとうございました。


みや [WriteDate : Fri Jun 8 17:32:06 2001]

解決です。


チャチャ入れ [WriteDate : Fri Jun 8 18:04:16 2001]

IIS+ASPでは、こんな感じになると思います。
<%

サーバー側の処理だけで、クライアントには何も返さない処理

Response.Status= "204 No Content"
Response.End
%>

で、実際に試したのですが、NN4.05では、意図した通りの動作と
なりましたが、IE5.5ではサーバー側の処理は正常に行われますが、
クライアント側では、ブラウザがタイムアウトするまで待ち続けて
しまいました。
何かが足りないのかなぁ?


みや [WriteDate : Thu Jun 14 11:20:59 2001]

チャチャ入れありがとうございます。(笑)
俺も試してみます。


みや [WriteDate : Thu Jun 14 11:21:30 2001]

完了

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World