画像を非同期にダウンロードしたいので、最初のユーザーには低解像度の画像が表示され、高解像度のバージョンは背景にダウンロードされます。私は以下を試した。HTML、画像の複数のsrc属性を並列に設定する方法、最速の勝利
<html>
<head>
<script>
window.addEventListener('load', function() {
var kuvaEl = document.getElementById('kuva');
var r_src = kuvaEl.getAttribute('r-src');
var a_src = kuvaEl.getAttribute('a-src');
kuvaEl.setAttribute('src', r_src);
kuvaEl.setAttribute('src', a_src);
});
</script>
</head>
<body>
<img id="kuva" src="http://www.viikonloppu.com/wp-content/uploads/2014/04/lotoflaughters.com_-619x428.jpg?c3bc1b"
a-src="https://www.manitowoccranes.com/~/media/Images/news/2014/Potain-China-hi-res.jpg"
r-src="http://fuzyll.com/images/2016/angel_oak_panorama.jpg" />
</body>
</html>
しかし、問題はsrc
が二時間を変更する場合r_srcダウンロードが中止されています。これらのイメージを両方とも並行してダウンロードし、r_srcを最初に表示します(a_srcよりも速くダウンロードする場合のみ)。* a_src *の準備ができたら、a_srcと表示してください。
また、それが実際に変更されsrc
前に、ブラウザのキャッシュにこれらのr_src a_srcと画像をダウンロードすることは可能でしょうか?理想的には、src
の変更をキャッシュからイメージを取得するか、そのURLの保留中のダウンロードに参加させることができます。
jQueryも使用できます。 IE7は実装をサポートする必要があります。
AJAXをお試しになりましたか?画像を低解像度のsrcでロードし、次にAJAX高解像度の画像でロードし、画像のsrc値を置き換えます。 –
3つの画像を使用するのはちょっと残酷に思えるかもしれませんが、おそらく非常に遅くなります。 Facebookが使用している[このアプローチ](https://css-tricks.com/the-blur-up-technique-for-loading-background-images/)を試すことができます。 –
3つの画像を使用する理由は、常に低い解像度である小さな画像があることです。小さな画像をクリックすると、大きな画像が最初に低解像度、高解像度が利用可能な場合には更新されます。サンプルコードはこのロジックに従わず、単なるテストです –