javascriptで<body onload="setInterval('aa()',6000);">

として、marqueeタグを使用して、
文字を流しているのですが、
onload時に文字がブラウザ上少しだけ
止まってしまいます。
これはどうしたらいいのでしょうか?
ブラウザはfirefoxでOSはturbolinuxで
実行環境は、Xwindowから別サーバに置いて
あるページを参照しています。
わかるでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/05/18 14:05:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:jack_sonic No.1

回答回数124ベストアンサー獲得回数25

ポイント23pt

setInterval("処理",時間)は、第一引数で指定した処理はsetInterval()自体の呼び出し時には実行せず、

第二引数で指定した時間が経ってはじめて一番最初の呼び出しが実行されるので、

もしaa()が一番最初に実行されていないことが原因でしたら、

<body onload="aa();setInterval('aa()',6000);">

とすると呼び出し時に最初に実行されるようになります。

id:hopefully

前回のsleep関数で処理をやっているのですが

サーバー側のCPU負荷は、半分以下になったのですが、

クライアント側のブラウザのCPU負荷が、

onload時に70%などになってしまいます。

これの解消方法はわかりますか?

2007/05/18 12:29:10
id:lains_you No.2

回答回数50ベストアンサー獲得回数10

ポイント23pt

 onload="setInterval('aa()',6000);"では、最初のaa()はonloadイベント発生から6秒後に実行されると思います。

 onloadイベント発生直後にもaa()を実行したいのであれば、onload="aa();setInterval('aa()',6000);"のように、最初にaa()を実行されるとよいと思います。

id:hopefully

前回のsleep関数で処理をやっているのですが

サーバー側のCPU負荷は、半分以下になったのですが、

クライアント側のブラウザのCPU負荷が、

onload時に70%などになってしまいます。

これの解消方法はわかりますか?

2007/05/18 12:29:14
id:daichan330 No.3

回答回数565ベストアンサー獲得回数106

ポイント22pt

javascript では、sleep/wait などの機構が無く、setInterval/setTimeout関数では CPUループしてしまうため、CPU資源をかなり使用します。止まってしまうのはその影響ではないかと思います。


同様の質問として以下があります。参考にされてはいかがでしょうか。

http://q.hatena.ne.jp/1179364449

id:hopefully

前回のsleep関数で処理をやっているのですが

サーバー側のCPU負荷は、半分以下になったのですが、

クライアント側のブラウザのCPU負荷が、

onload時に70%などになってしまいます。

これの解消方法はわかりますか?

2007/05/18 12:29:18
id:jack_sonic No.4

回答回数124ベストアンサー獲得回数25

ポイント22pt
>前回のsleep関数で処理をやっているのですが
>サーバー側のCPU負荷は、半分以下になったのですが、
>クライアント側のブラウザのCPU負荷が、
>onload時に70%などになってしまいます。
>これの解消方法はわかりますか?

sleep関数といっても、関数内で

for/whileの処理ループを使って待機する場合は、

JavaScriptが処理能力を占有して

応答能力にCPU能力をまわせないためにCPU負荷が上がります。

そういった処理ループを使わない方法でやる必要があります。

setTimeout,setIntervalでは、処理ループではなく

タイマーを使うため、

for/while処理ループ式より負荷を下げる方法があります。

具体的にどういうコードでやっているのか

載せたほうがいいかと思われます。(必要があれば別途質問で)

id:hopefully

では別で質問を立てますのでよろしくお願い致します。

2007/05/18 13:58:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません