私のウェブサイトにギャラリーがあります。ギャラリーには15枚の画像があり、それぞれが約500KB(合計サイズは7.5MB)です。
ギャラリーの読み込みには時間がかかるため(コンピューターでは25秒、接続によって異なります)、訪問者にギャラリーが読み込まれていることを知らせて、AjaxがGIFを読み込んでいることを知らせたいと思います。
ギャラリーの画像がダウンロードされて表示できるようになるまで、訪問者がギャラリーページに入るとすぐに読み込み中のGIFを表示するようにします。
私の目標を達成するために、これは私がしたことです:
これは、ギャラリーのHTMLページの本文の始まりです。
<body>
<img src="images/ajax-loader.gif" alt="" class="hiddenPic" />
<!-- loading Ajax loading GIF before all the other images -->
そしてこれはギャラリーCSSの部分です:
#gallery {
background: url(images/ajax-loader.gif);
background-repeat:no-repeat;
background-attachment: fixed;
background-position: center;
したがって、基本的に、読み込み中のGIFは、訪問者がギャラリーページに入るとすぐにダウンロードする必要があります。これは、読み込み中のGIFがダウンロードされる最初のオブジェクトであるため<body>
です。ただし、hiddenPic
クラスのため表示されません。
この方法は、すべてのギャラリー画像がダウンロードされてギャラリーの準備ができるまで、読み込み中のGIFを準備して、ギャラリーの背景としてできるだけ早く表示できるようにするのに役立ちます。
ただし、GIFの読み込みはGoogleChromeでは正しく機能しません。FirefoxとIEでは問題なく動作します(完璧に回転します)が、Chromeでは表示された瞬間からギャラリーの準備ができるまでスタックします(正しく回転しません)。
更新:ギャラリーページに入るときにユーザーが必要とするリソースが少ない、より良いギャラリー(コメントで提案されているものなど)を実装できることはわかっていますが、これが問題の原因となる可能性があるのはわかりません。 GIFローダーはFirefoxとIEで完全に機能します。
Ajaxの読み込みGIFがChromeで正しく機能しないのはなぜですか?