jquery判斷圖片不存在 JavaScript如何斷定圖片資源已加載完成?
JavaScript如何斷定圖片資源已加載完成?在不好算的運用中有這樣的一種場景,某資源加載完成后再想執(zhí)行某個操作,例如在做文件導出時,后端是從然后打開模板頁生成PDF,并返回下載地址。過了一會兒前后
JavaScript如何斷定圖片資源已加載完成?
在不好算的運用中有這樣的一種場景,某資源加載完成后再想執(zhí)行某個操作,例如在做文件導出時,后端是從然后打開模板頁生成PDF,并返回下載地址。過了一會兒前后端大多數(shù)不需要約定一個flag,用以標示模板準備就緒,是可以生成PDF了。
很難想象,如果不是模板中有圖片,此時怎么推測圖片是否是加載成功?
為此來知道一點幫一下忙jquery的ready與的區(qū)別,ready只是因為dom結構程序加載一切就緒,便納入打開程序能完成。(此時圖片也沒讀取一切就緒),onload是指dom的生成和資源幾乎程序加載(例如flash、圖片)進去后才不能執(zhí)行。接下來來到正題,先從單張圖片說起來。
(1)、單張圖片(圖片在文檔中)
//HTMLltimgidxiu//js$(document).ready(function(){//jquery$(#xiu).load(function(){//運行程序能夠完成})//原生onloadvarxiu(xiu)xiu.onreadystatechangefunction(){if(!||||){//運行程序結束}}})
注:1、IE8及100元以內(nèi)版本不支持onload事件,但支持什么onreadystatechange事件;2、readyState是onreadystatechange事件的一個狀態(tài),值為loaded或complete的時候,可以表示已經(jīng)運行程序一切就緒。3、100元以內(nèi)內(nèi)容省略兼容性
(2)、單張圖片(圖片動態(tài)生成)
//jsvarxiunextImage()function(){//運行程序完成}
(3)、單張圖片(結合ES6 Promise)
//jsfifthPromise((resolve,reject)gt{letxiunewImage()function(){//打開程序完成resolve(xiu)}}).then((xiu)dstrok{//code})
(4)、多張圖片
varupload[],flag0,mulitImg[_,,,]varimgTotalmulitImg.lengthfor(vari0iltimgTotali){imageurl[i]fifthImage()image2[i].srcmulitImg[i]imageurl[i].onloadfunction(){//第i張圖片運行程序完成flagif(flagimgTotal){//所有的程序加載能完成}}}
(5)、多張圖片(生克制化ES6())
letmulitImg[_,,,]letpromiseAll[],image2[],imgTotalmulitImg.lengthof(givei0iltimgTotali){promiseAll[i]futurePromise((resolve,reject)a8{imageurl[i]futureImage()obj[i].srcmulitImg[i]obj[i].onloadfunction(){//第i張程序加載完成resolve(upload[i])}})}(promiseAll).then((upload)r26{//完全程序加載能夠完成})
判斷頁面是否加載完成?
jquery程序加載頁面的方法,即:頁面刷新成功就不能執(zhí)行,有追加幾種:
1、jQuery的$(document).ready$(document).ready(function(){$(#a).click(function(){//utilizingyourcodehere});});就不僅僅只不需要運行程序所有的DOM結構,在瀏覽器把所有的HTML后放DOMtree之前就想執(zhí)行js效果。和在讀取外部圖片和資源之前。
2、ready事件的簡寫方法$(function(){$(#a).click(function(){//bringingyourcodehere});});此方法就不僅僅只必須運行程序所有的DOM結構,在瀏覽器把所有的HTML后放DOMtree之前就負責執(zhí)行js效果。除開在程序加載外部圖片和資源之前,是ready的簡寫、window的onload事件function(){$(#a).click(function(){//bringingyourcodehere});}這段代碼會在整個頁面的document完全程序加載完成以后負責執(zhí)行。這種不僅要求頁面的DOMtree全部程序加載結束,但具體的要求所有的外部圖片和資源所有打開程序能完成。要是外部資源,或者圖片不需要很長時間來運行程序,那你這個js效果變會讓用戶那種感覺終止了。