0

私はあなたのウェブブラウザでmp3を表示して再生する小さなアプリケーションを書いています。上部に、プレイリスト内のすべての曲のアルバムアートをロードします。ページの下部で、現在再生中の曲のアルバムアートに一致するように1つの画像を変更します。

問題は、アルバムアートの画像が非常に似1200X1200ていることと、曲が変わるたびに読み込むのに長い時間がかかることです。

img毎回ダウンロードする必要のあるタグを動的に作成するのではなく、画像データをコピーして下に表示する方法があるのではないかと思いました。

下の画像を取得して表示するために使用するコードは次のとおりです。

function currentSongInfo() {
    var currentItem = '.jplayer_playlist_current';
    var currentArtist = $(currentItem+' .artist').html();
    var currentSong = $(currentItem+' .thumb-title strong').html();
    var currentAlbumArt = $(currentItem+' img.thumb-image').attr('src');
    //below image is reloaded each time I change it
    currentAlbumArt = '<img src="'+currentAlbumArt+'" />';
    $('#current-song-info-bar').html(currentAlbumArt+'<div><span>'+currentSong+'</span><br>'+currentArtist+'</div>');
}

解決策は@aliによって以下に提供されます

MP3から画像を取得するPHPファイルにこれを追加しました。

header('Cache-Control: max-age=28800');
4

2 に答える 2

4

設定に何か欠けている場合を除き、(遠い将来のために) 画像にキャッシュ制御ヘッダーが指定されていて、画像がクライアントのブラウザーにダウンロードされている場合、同じ画像に対する次の要求は、新しいダウンロードですが、ブラウザのキャッシュからアイテムを取得するだけです (ユーザーが何らかの理由でキャッシュをクリアしない場合)。e-tag を確認することもできますが、この場合、ブラウザはサーバーにリクエストを送信して、アイテムが変更されているかどうかを確認します。変更されている場合は、ダウンロードが行われます。そうでない場合、ダウンロードは行われません (ただし、少なくとも、アイテムが古いかどうかを確認するために http 要求が出されます)。それが役に立てば幸い。

于 2013-01-26T22:20:51.970 に答える
0

アリはキャッシュについて正しいです。応答ヘッダーまたはクライアントで何かおかしいものが設定されていない限り、イメージはキャッシュからロードされます。画像を再利用するもう 1 つの方法は、次の投稿のように Javascript 画像オブジェクトを作成することです: Javascript 画像オブジェクトを直接ページに割り当てる

于 2013-01-26T22:28:05.207 に答える