私はあなたの部分がビューでレンダリングされていると考えます。事前ロードは、ブラウザがリソースを必要としていることを確認するためにブラウザを不正にしています。
Javascriptを
あなたが実際にJavaScriptで示される前にプリロードするために画像を強制することができます。
<script language="javascript">
function img_preloader() {
myimg = new Image();
images = new Array();
images[0]="image1.jpg";
images[1]="image2.jpg";
images[2]="image3.jpg";
images[3]="image4.jpg";
// start preloading
for(i=0; i<=3; i++) {
myimg.src=images[i];
}
}
</script>
このようにあなたのイメージの1がロードされているfor
ループ内のすべての反復のために。プログラムであなたは(ERBに)することができ、アレイを生成するために
:
<script language="javascript">
function img_preloader() {
myimg = new Image();
images = new Array();
<% @array_of_img_paths.each do |path| %>
images.push("<%= path %>");
<% end %>
// start preloading
for(i=0; i<images.length; i++) {
myimg.src=images[i];
}
}
</script>
ただ、HTML
- は、プログラムあなたが
- をプリロードするすべての画像のための1つのiframeを開くには、SRCを設定しましたiframeをプリロードする画像に
- iframeのサイズをできるだけ小さく設定する
ブラウザとサーバーの設定に従って、画像が並列に読み込まれます。あなたがプリロードしたいすべての画像について
div.noone_will_see {
background-image: url("image1.jpg");
background-repeat: no-repeat;
background-position: -1000px -1000px;
}
反復:
CSSはあなたが表示されますのdiv誰もの背景画像としてプリロードするイメージを設定します。
出典
2010-11-27 22:14:54
lbz
おかげさまで、ありがとうございました。私はそれほど知っていますが、それほど簡単ではないので止まっています。 images [0] = "image1.jpg"; 私はむしろやるでしょう: images [id] = "image" + id + "。jpg"; これを行うには、その時点でページ上の画像のIDを知る必要があります(それらは異なります)。だから私はこのjs関数に私のレール変数を渡す必要があります... varが別の.jsファイルにある場合、私はこの仕事をするように見えることができません。だから私は部分的に直接レンダリングすることを望んでいた。ガー..これは少し混乱している場合はごめんなさい。 – mtay
ご清聴いただきありがとうございます。画像[id] = "image" + id + ".jpg"を実行すると何が問題になりますか? HTML内にjsスニペットを作成するには、事前ロードする画像のevey IDを繰り返します。画像が荒れている可能性があるので、jsは変化するので、別のページのjsを共有することはできません。 – lbz
あなたのご回答ありがとうございます!まあ、それはいいようです。しかし、私はどのようにIDが何であるのか私のjs関数に伝えるのですか?申し訳ありませんが、私は初心者です - 今、idはrails変数@feature_image.idに保存されています。ページの読み込みが完了したら、何とかその変数を取得して、js関数にこれがidであり、そこからインクリメントすることを伝えたいと思います。しかし、私はそれを行う方法について私の髪を引っ張っています。私は何が欠けていますか? – mtay