2011-10-07 7 views
3

私は自分のサイトにエフェクト(あまりにも多くはない)をスパイスしたいのですが、私は一般に3-4のインターバルを持っています。私が障壁を伸ばしているかどうか誰かが知っているかどうか疑問に思っていますか?setIntervalsの数はどれくらい多くありますか?

+4

'effects'を定義してください。 90年代のウェブサイトが知られているのと同じ「効果」の場合、1が多すぎます。 – Omar

+2

まあ、それは依存しています。彼らは5分ごとに、または50ミリ秒ごとにトリガーしますか? – Dennis

+0

lol jqueryアニメーションスプルーツと位置の増分 –

答えて

2

複数のタイマーを持つことを恐れている場合は、1つのタイマーを使用し、タイマーがカウントダウンするたびに効果を発火させます。それはあなたが何をしようとしているかによって異なります。

+0

ねえ、私はその考えが好きです。それは良くなるはずです。 –

1

実際にどれくらいの時間がかかるか、それぞれの間の遅延に依存します。

あなたのブラウザーはこれらの呼び出しを待ち行列に入れますので、ユーザーのブラウジングエクスペリエンス(またはぎこちないアニメーション)が遅くなることが心配な場合は、希望の間隔がないかどうかをかなり簡単なタイミングコードで検出できます。その後、適切に表示されているエフェクトの数を減らす(または増加させる)ことができます。

5

setintervalが多すぎると示唆していますが、代わりにsettimeoutを使用してください。この理由は、JavaScriptがシングルスレッドであるためです。これは、(setintervalの関数かもしれない)いくつかのコードがタイムアウト呼び出しをブロックすると、setintervalは引き続き関数呼び出しをより多く発行することを意味します。小さな間隔では、関数呼び出しが積み重なり、バグの発見/再現が非常に困難になります。

ベストプラクティスは、関数内でsettimeoutを使用することです。だから、あなたが以前持っていた場合:

function foobar() 
{ 
// do some stuff 
} 
setInterval(foobar, 100) 

をあなたはそれを変更する必要があります。

function foobar() 
{ 
//do some stuff 
setTimeOut(foobar, 100) 
} 

これは、あなたが実際に機能を実行したいかどうかを確認するためのロジックのビットを追加することができます追加の利点を持っています再び。

関連する問題