0

これは非常に単純な質問だと思いますので、他の場所で回答された場合はご容赦ください。探していたのですが、探していたものが見つかりませんでした。JavaScriptの経験はほとんどありません。

1ページにマウスクリックで進む簡単なJavaScriptスライドショーがたくさんあります。私が使用しているコードについては、以下を参照してください。これは、JSの紹介サイトの1つから削除したものです。これにより、ユーザーがページにアクセスしたときに、各スライドショーから各画像がプリロードされます。スクリプトで各画像をプリロードせず、代わりにユーザーがクリックしてスライドショーを進めたときにのみ次の画像をロードしたいと思います。ほとんどのユーザーはほとんどの画像に遭遇しないため、これは読み込み時間を短縮するためです。これを各画像をプリロードしないものに変換する簡単な方法はありますか?

<SCRIPT LANGUAGE="JavaScript">
var i=0
var imgs=["/a.jpeg","/b.jpeg","/c.jpeg","/d.jpeg","/e.jpeg"]
function slide(){ {i=i+1} {if (i==5) {i=0}} {document.img.src=imgs[i]} }
</SCRIPT>

そして、スライドショーが呼び出されるときのコード:

<A HREF="JavaScript:slide()"><IMG SRC="/a.jpeg" NAME="img"></a>

ありがとう!-パトリック

4

3 に答える 3

0

ああ、お返事ありがとうございます。彼らは私を私の答えに導きました、それは私が非常にばかげた間違いをしたということです。ウェブサイトの分析テストの結果を誤解しました。これは、すべての画像がキャッシュにダウンロードされていることを示しているようです。これは、JavaScriptの理解の欠如によって支えられた、野生のガチョウの追跡に私を導いた結果の単なる間抜けな誤読でした。ここで応答するためにテストに戻った後、私はそれを実現しました。微調整を加えるだけで、すべて意図したとおりに動作します。ありがとうございました!

于 2013-02-15T18:59:43.240 に答える
0

src(非公式に)要素のcssdisplayプロパティがに設定されていない限り、画像は属性が設定されるとロードを開始しますnone

したがって、投稿したコードの場合のように、img要素またはJSオブジェクトのソースを設定しない限り、画像の読み込みは開始されません。Image

于 2013-02-15T00:01:08.840 に答える
0

画像配列を使用して、

var imgs = ["/a.jpeg","/b.jpeg","/c.jpeg","/d.jpeg","/e.jpeg"]

あなたはこれを行うことができます:

function preloadImages(){
    for(var i=0 ; i<imgs.lenght ; i++) {
        img = new Image();
        img.src = "img/" + imglist[i];
    }
}

この関数はこれらすべての画像をプリロードslide()するため、実行すると画像はブラウザのキャッシュに保存されます。

この方法はすべてのブラウザで機能するわけではないため、このトリックを実行する必要がある場合は、次divのように、すべての画像で1x1ピクセル(ビューの外側に配置)のサイズのを使用します。

<div>
    <img src="/a.jpeg" />
    <img src="/b.jpeg" />
    ...
</div>

これにより、すべての画像ができるだけ早く読み込まれます...

于 2013-02-15T00:24:01.613 に答える