ファイルパスからファイル名を取得する

Demo


/**
 * ファイルパスからファイル名を取得する
 * 
 * @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=""  />
	
Demo


複数画像をすべてプリロードしたらコールバックを呼び出す

HTML


<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