この URL のサムネイルのキャッシュを使用しています
http://ts1.mm.bing.net/images/thumbnail.aspx?q=NUM&id=HASH
whereHASH
とNUM
are (どういうわけか) 特定のサムネイルへの参照です。
たとえば、NUM = 1148286928700
とはこのサムネイルHASH = d2f4bbf91a853cefbc18794b6eb9ecdd
への参照です。
もちろん、サムネイルは大きな画像よりもファイル サイズが小さいため、Yahoo! 最初にサムネイルのキャッシュからロードして、ユーザーに画像が何であるかを垣間見せ、バックグラウンドでフルサイズの画像をロードします。
彼らが使用する手法は、画像を隠しimg
タグにロードし、その画像タグのイベントにバインドして、サムネイルをフルサイズの画像にload
置き換える機能だと思われます。したがって、(非表示の) フルサイズの画像が読み込まれると、ページの読み込み時に表示されるサムネイル画像が置き換えられます。src
src
サムネイル画像がimg
ID のタグにロードされmain_image
、フル サイズの画像がimg
ID の非表示タグに (バックグラウンドで) ロードされているとしますsecondary_image
。次に、 のload
イベントにバインドし、ロード時にを#secondary_image
置き換えます。src
#main_image
$('#secondary_image').load(function() {
// on big image load, replace the src of the thumbnail image
$('#main_image').attr('src', $(this).attr('src'));
}
次に、ユーザーが別の画像を表示したい場合は、src
の#main_image
を別のキャッシュされたサムネイルに置き換え、src
の#secondary_image
を大きな画像に置き換え、イベントを再度バインドしload
ます (理想的には、上記のコードで関数を作成し、これを呼び出します)を変更するたびに機能します#secondary_image
src
。