2011-01-17 17 views
1

私は1つの画像を表示するだけの画像を表示し、最後に到達するまで別の画像を表示する簡単なスライドショーを表示します。このサイトはDjangoでapache2で提供されています。スライドショーはほとんどのマシンでは完璧に機能しますが、一部の画像では2回の画像が表示され、他の画像ではまったく表示されず、タイミングがオフになります。私はjquery 1.4.3を使用しています。以下はシンプルなjquery特定のブラウザでフェードスライドショーが失敗する

私はjavascriptの

以下
{% for image in latest_images %} 
{% thumbnail image.image_file "800x600" crop="center" as im %} 
<script>FadeImageList.push("{{im.url}}");</script> 
{% endthumbnail %} 
{% endfor %} 

に、データベースから画像のURLをプッシュするHTMLのセクションでは、完全なJavaScriptのファイル

var FadeImageList = []; 

var fadeDuration = 2000; 
var fadeImgID = '#slideShow'; 
var homePageID = '#homePage'; 
var menuID = '#menu'; 
var skipFlag = 0; 

$(document).ready(function(){ 

$(homePageID).fadeOut(50); 

PlaySlideshow(FadeImageList); 

}); 

var PlaySlideshow = function(FadeImageList){ 
    var newImgSrc = FadeImageList.shift(); 

    $('#skip').click(function(){$('#loader').show();skipFlag = 1;}); 


    if(((typeof(newImgSrc) !== "string") || (skipFlag === 1))){ 
     EndSlideShow(); 
     return; 
    } 
    else{ 
     $(fadeImgID).fadeOut(fadeDuration,function(){ 
      $(fadeImgID).attr('src', newImgSrc); 
      $(fadeImgID).fadeIn(fadeDuration,function(){ 
       PlaySlideshow(FadeImageList); 
      }); 
     }); 
    } 
}; 

var EndSlideShow = function(fadeSettings){ 
    $(fadeImgID).fadeOut(400,function(){ 
    $(homePageID).fadeIn(400); 
    $("#skip").fadeOut(400); 
    $('#loader').hide(); 
    }); 
}; 

です奇妙なことは、私が持っていたあります同じosではなく異なるマシン上で同じバージョン番号のブラウザで動作し、失敗します。それは一貫して動作するか、マシン上で失敗します。

私はそれが失敗しました。つまり、7,8 Firefox 3.6.3とchromeです。私はまた、ie6,7,8 firefox 3.6.3,3.4.2,3.1とchromeで成功した。

答えて

0

ブラウザ(IE7など)がある場所で失敗し、別の場所で動作する場合、ローカル設定がそれぞれ同じですか(キャッシュなど)。彼らは同様のネットワーク接続速度を持っていますか?まず最初に、スライドショーが不完全な画像ファイル/不完全な画像の配列で始まる可能性があるので、プリローダーが必要であることです。

+0

各テストの前にすべてのテストされたブラウザでキャッシュをクリアしました。それはあなたがキャッシュすることの意味ですか? – cmay

+0

プリローダーを追加しました、チップのおかげで! – cmay

+0

それはうまくいってうれしい。再キャッシュ:うん、それは私が言ったことだ。 –

関連する問題