$.getJSON を使用して、PHP スクリプトからデータ (JSON エンコード) を受け取ります。10 個のデータセット ({"key":"data",...}) で構成されます。最初に古い文字列をフェードアウトし、次に新しい文字列に置き換え、最後にフェードインして、すべてのデータを印刷したいと思います。これはループ内で発生します。
データセットが処理されると、関数はそれ自体を呼び出し、次の 10 個のデータセットを取得して出力します。等々。
function getText(){
$.getJSON("getText.php",
function(data){
for(key in data){
//alert(key);
if($("#wrapper").css("display") == "block")
$("#wrapper").fadeOut(500);
$("#wrapper").html(data[key]).fadeIn(500);
}
});
//alert("end");
setTimeout(function(){
getText();
},20000);
}
一部のアラートでは適切なデータセットが表示されますが、アラートがなければ、データセットの最後のデータまたは最初のデータのみが表示されます。
単純化すると、div (#wrapper) は 1 つだけです。ページがロードされ、いくつかの情報が表示された後、関数 getText が初めて呼び出されます。ここで PHP スクリプトが呼び出され、10 個のデータセットを受け取ります。それらのそれぞれは、関数が再び自分自身を呼び出す前に表示されます。例: フェード イン ラッパー、表示データ #1、フェード アウト ラッパー。フェード イン ラッパー、データ #2 の表示、フェード アウト ラッパーというように、すべてのデータ (10 個のうち) が表示されなくなるまで続きます。ループは何らかの形でアニメーションを待つ必要があります。また、ラッパー内のテキストは置き換えられます。