setTimeoutでIEだと、倍のスピードで進んでしまうのですが

[上に] [前に] [次に]
かが [E-Mail] 1999/08/19(木) 16:18:51
JavaScriptで連番のjpg画像を差し替えて
アニメのようにしたくて

<SCRIPT LANGUAGE="JavaScript">
a=1;
function watch() {
      setTimeout('watch()', 1000);
a++}

というようなスクリプトで、
NN4.5では、ほぼ1000ms=1秒になるのですが、
IE4.5でテストしたところ倍の0.5秒ぐらいで進んでしまうのですが
これはIEのバグなのでしょうか?
そうだとしたら、バージョンに共通したバグなのでしょうか?
どなたか、何でもいいので心当たりのある方教えて下さい

Tmb 1999/08/19(木) 16:47:22
関係ないかもしれませんが,これって再帰呼び出しされてますよね?

setTimeoutは使ったことないんですが,同様の使い方してるスクリプトを
以前にも見たことがあって気になってました。意味もなく再帰呼び出しするのって
どうかと思いますけど。

<HEAD>
<SCRIPT language="javascript">
function watch(){
a++;
[画像書き換え]
}
・・・
</SCRIPT></HEAD>

<BODY>
<SCRIPT language="javascript">
a=1;
setTimeout('watch()',1000);
・・・

みたいな形式ではどうですか?

Tmb 1999/08/19(木) 16:50:22
あーっと,失礼。setIntervalと勘違いしておりました。
大変失礼いたしました。上のは忘れてやってください m(_ _)m

かが [E-Mail] 1999/08/19(木) 17:03:43
Tmbさん、反応ありがとうございます。
[画像書き換え]と、<head>内だという部分を
書き忘れていたのでその補足だけでもありがたいです
ひきつづき、情報お待ちしております

みんこ 1999/08/19(木) 17:20:43
んーと。

http://www.cmp-lab.or.jp/~redcap/WWW/html/JV-ANME.htm

IE4.5は使ってないし1000=1秒になると思いこんでるので
何が悪いんかわかんないですが一応比べてみては?

うちでもこんなことやってますけど、これも早いのかな。
http://www.incl.ne.jp/~aqua/event/expo/sec/index.html

Tmb 1999/08/19(木) 17:28:56
単なる思いつきなんですが(懲りもせず (^^;;)
watch()内でsetTimeoutを記述する場所は影響しないのでしょうか?
関数の最初に書くのと最後に書くのでは。

かが [E-Mail] 1999/08/19(木) 17:44:21
[[解決]]
すいません、解決しました。
ここの書き込みには書かなかった部分で、
watch()を、2重に起動させていました。
それが、NNはそれを無視してくれたみたいでした。
イージーなミスです。お恥ずかしい。
この書き込みで、そんなバグが?と混乱なさった方
本当に申し訳ありません
又、Tmbさん、みんこさんありがとうございました。
何かあったときには又、よろしくお願いします。

zizz... [HomePage] 1999/08/19(木) 18:21:08
watchという名前の関数を定義するのはやめた方がいいです。
Objectオブジェクトにwatchというメソッドがあり紛らわしい。

実際Netscape 4.61 [en]で、watchという関数を呼びだそうとするとエラーが出ました。
hoge.watch(arg1, arg2)
という形ではなく、
watch(arg1, arg2)
と書いてみた場合は、Windowオブジェクトのwatchメソッドと認識されないようです。
window.watch(...)なら可能でした。

../199907/99070152.htm

かが [E-Mail] 1999/08/20(金) 11:18:42
一応、くどいですが後の人のために
どういうミスだったかを書いておきます
<head>のスクリプト内で
watch();と、watchを呼び出していたのに
<body onLoad="watch()">
と、重複して呼び出してしまっていたのでした。
それをNNだと、見逃してくれ、
IEでは几帳面に2度呼び出してしまっていたのです。
こういう、ミスって単純な事ですが見落とすとはまってしまうので

で、そのwatchですが、念のため他の名前に替えておきました。
zizz...さん
ありがとうございました

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