人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:firefox JavaScript OS Turbolinux サーバ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● じゃっくそにっく
●23ポイント

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

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

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

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

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

◎質問者からの返答

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

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

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

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

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


2 ● lains_you
●23ポイント

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

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

◎質問者からの返答

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

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

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

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

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


3 ● ? ????<だ
●22ポイント

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


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

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

◎質問者からの返答

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

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

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

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

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


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

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

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

JavaScriptが処理能力を占有して

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

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

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

タイマーを使うため、

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

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ