Jqueryを使用してスライドショーを作成しようとしていますが、画像は5.5秒ごとに呼び出される関数によって循環されます。しかし、反復呼び出しと比べて非常に高価であるため、再帰を避けようとしています。そして私はそれがIEがスライドショーが読み込まれたときに停止していない読み込みアイコンを持つ原因だと仮定しています。ですから、私は以下の関数を反復的なものに変換したいと思います。Jquery/javascriptを使用して再帰関数をループ関数に変換する方法
function playslides()
{
//hide previous slide
$(document.getElementById(t)).fadeOut("slow");
//reset slide index
calcSildes();
//show new slide
$(document.getElementById(t)).fadeIn("slow");
//recursive call after 5.5 sec
timer = setTimeout("playslides()", 5500);
}
//on page load...
$(document).ready(
playslides();
);
は、これまでのところ、私の2つの方法がある:
は、whileループ$(ドキュメント).ready()関数とループplayslides内部()関数を作成します。
playslides()関数を呼び出す別のtimer関数を作成し、その関数をplayinglides関数が呼び出すようにします。 (再帰をまったく避けるかどうかはわかりません)
ありがとう!!
多くのjqueryスライドショープラグインの1つを使用してみませんか? – jrummell
なぜそれはひどく高価だと思いますか?あなたの繰り返されるDOMの選択は、修正する必要がある最も高価なものになります。 –
ありがとう、SetTimeoutの代わりにSetIntervalを使用するように関数を変更した後、IEの回転ローディングアイコンがページの読み込み後も引き続き発生します。それは "繰り返されたDOMの選択"ですか?ありがとう! – eastboundr