/**
* ファイルパスからファイル名を取得する
*
* @param string fp ファイルパス
* @return string ファイル名
*/
function _extractFileNameFromFp(fp){
if(fp == null) return '';
let ary = fp.split(/\/|\\/);
let fn = ary[ary.length-1];
return fn;
}
JavaScript
let u = Math.floor(new Date());// UNIXタイムスタンプに変換
let output = $('#res');
output.html('読込開始<br>');
const img = new Image();
img.onload = function(){
// 画像のプリロード完了後に実行する処理(同期的な画像の読込)
let u2 = Math.floor(new Date());// UNIXタイムスタンプに変換
let time = u2 - u;
let imgElm = jQuery("#img1");
imgElm.attr('src',img.src);
output.append(time + "ミリ秒<br>");
output.append('Success<br>');
}
// キャッシュを回避するためUNIXタイムスタンプをURLに付加している。
let url = 'https://amaraimusi.sakura.ne.jp/photos/halther/y2019/m03/orig/20190324184033_15534203777882106212973.jpg?v=' + u;
img.src = url;
HTML
<div id="res" ></div>
<img id="img1" src="" />
DemoHTML
<div id="res" class="text-success"></div>
<img id="img0" src="" style="width:240px;height:auto" />
<img id="img1" src="" style="width:240px;height:auto" />
<img id="img2" src="" style="width:240px;height:auto"/>
<img id="img3" src="" style="width:240px;height:auto" />
JavaScript
$(()=>{
let u = Math.floor(new Date());// UNIXタイムスタンプに変換
let output = $('#res');
output.html('読込開始<br>');
let imgUrls = [
'https://amaraimusi.sakura.ne.jp/photos/halther/y2019/m03/orig/20190319181616_1552986941299-1867207771.jpg',
'https://amaraimusi.sakura.ne.jp/photos/halther/y2019/m03/orig/20190319182356_1552987380648-69218458.jpg',
'https://amaraimusi.sakura.ne.jp/photos/halther/y2019/m03/orig/20190319183136_15529878714601767213182.jpg',
'https://amaraimusi.sakura.ne.jp/photos/halther/y2019/m03/orig/err.jpg', // 存在しない画像
];
// キャッシュを回避するためUNIXタイムスタンプをURLに付加する。
for(let i in imgUrls){
imgUrls[i] += '?v=' + u;
}
let imgsPreload = new ImgsPreload();
let imgObjList = imgsPreload.preload(imgUrls, callbackTest, progress);
});
function callbackTest(imgObjList){
console.log('すべての画像のプリロードした時のコールバックを呼び出しました。');
for(let key in imgObjList){
let img = imgObjList[key];
$('#img' + key).attr('src', img.src);
}
$('#res').append('すべての画像のプリロード完了<br>');
}
function progress(param){
$('#res').append(`進捗→${param.counter}/${param.data_cnt}<br>`);
}
Demo