CGIを使って時間を計るには?
[上に]
[前に]
[次に]
TOI
[E-Mail]
1998/09/13(日) 23:17:45
CGIを使って、時間を計るにはどうしたらよいのでしょうか?
要するにストップウォッチみたいなのを作りたいのですが・・・
特にボタンを押すと測定開始となるものがいいですけど・・・
まだCGI初心者なものでよろしくお願いします。
Tiot
[E-Mail]
1998/09/14(月) 01:02:41
ただ単に時計のようなものを作りたいのでしたら
JavaScriptを使った方が、簡単で効率よく作れると思います。
function now(){
timeID=setTimeout("now()", 1000);
document.form[0].element[0].value=new Date();
}
(本文中で)
<form method="post">
<input size=n>
</form>
<script>
now();
</script>
これは今手元にあった、現在時刻を表示するスクリプトですが
これに、開始ボタンと、停止ボタンをつけてgetTimeメソッドを
使えばストップウォッチのようなものもできると思います。
cgiを使って同じことを、きれいにやるとするとサーバプッシュを
使わなければならないと思います。とほほさんの
http://www.tohoho-web.com/wwwxx004.htm
を参照に。
クライアントプルでもできますが、
画面全体の再描画になるのであまり美しくないと思います。
特殊な目的でない限りJavaScriptを使うのがいろいろな意味で
いいのではないでしょうか。
みんこ
[HomePage]
1998/09/14(月) 17:44:13
JavaScriptで作ってみました。0から1秒ずつカウントします。
(headタグ内)
<SCRIPT LANGUAGE="JavaScript">
<!--------
var i=0; (この数字が最初に表示されます)
function count(){
if (i>=0){
timess = setTimeout("count()",1000);
document.forms[0].elements[0].value=i;
i++;
}
}
//-------->
</SCRIPT>
(bodyタグ内)
<FORM METHOD="POST" name=f1>
<input size="5" name="count"></FORM>
<br>
<FORM METHOD="POST" name=f2>(スタートボタン)
<input type="button" value="start" onClick=count()></FORM>
<FORM METHOD="POST" name=f3>(ストップボタン)
<input type="button" value="stop" onClick=clearTimeout(timess)></FORM>
一応動くと思いますが、かなり自己流なので
もうちょっときちんと作れる方、がんがん直してやって下さい。
Tiot
[E-Mail]
1998/09/14(月) 19:38:32
スクリプトの部分をこんなかんじにしたらどうでしょうか。
var i=0;
function count(){
if (i==0){
startday = new Date();
startsec = startday.getTime();
i++;
}
timess = setTimeout("count()",1);
day = new Date();
sec = day.getTime();
document.forms[0].elements[0].value=(sec-startsec)/1000;
}
1度のループで1加算するという方法ですと、処理にかかる時間が
そのまま誤差になってしまいます。
(関数を呼び出すまでが1秒で、この中には実際処理にかかる時間は
含まれていませんので)
TOI
[E-Mail]
1998/09/15(火) 00:35:52
いろいろとご指摘ありがとうございます。
どうも自分のやりたいことがうまく伝わらなかったみたいです。
JavaScriptを使ってもいいので、CGIで時間の記録を取りたいのです。
何秒かかったかっていうやつです。
どうかもう一度よろしくお願いします。
B-Cus
1998/09/15(火) 00:53:50
> 何秒かかったかっていうやつです。
何を持って計測開始して、何を持って計測終了としたいのですが?
それがわからないと何とも言えないと思います。
Aurai
[E-Mail]
1998/09/15(火) 01:28:32
単純にtimeの比較とかじゃだめですか
CGI内部のプロセスの消費時間ならtimesというのが使えそうですが
[上に]
[前に]
[次に]