js 利用image對(duì)象實(shí)現(xiàn)圖片的預(yù)加載提高訪問(wèn)速度
一些瀏覽器試圖通過(guò)在本地緩存中保存這些圖片來(lái)解決此問(wèn)題。這樣一來(lái)可以順序調(diào)用這些圖片——但對(duì)于首次使用這些圖片的時(shí)候仍然會(huì)存在延時(shí)。預(yù)裝載就是一種在需要圖片之前就將圖片下載到緩存的技術(shù)。采用這樣的方式可以使當(dāng)確實(shí)需要顯示圖片時(shí)迅速將其從緩存中恢復(fù)回來(lái)并立即顯示。
Image()對(duì)象
最簡(jiǎn)單的圖像預(yù)裝載辦法是使用JavaScript新建一個(gè)新的Image()對(duì)象,然后將希望預(yù)裝載的圖片URL傳遞給此對(duì)象。假設(shè)我們擁有一個(gè)名為heavyimagefile.jpg的圖片文件,我們希望當(dāng)用戶(hù)鼠標(biāo)指針移動(dòng)到一張已有的圖片上時(shí)顯示此文件。為了能更快的對(duì)此文件進(jìn)行預(yù)裝載,我們簡(jiǎn)單的創(chuàng)建了一個(gè)名為heavyImage的新Image() 對(duì)象,然后將其通過(guò)onLoad()事件句柄同步裝載到頁(yè)面上。
<html>
<head>
<script language = "JavaScript">
function preloader()
{
heavyImage = new Image();
heavyImage.src = "heavyimagefile.jpg";
}
</script>
</head>
<body onLoad="javascript:preloader()">
<a href="#" onMouseOver="javascript:document.img01.src='heavyimagefile.jpg'">
<img name="img01" src="justanotherfile.jpg"></a>
</body>
</html>
注意,圖片的標(biāo)簽(tag)本身并不處理onMouseOver()以及onMouseOut()事件,這也正是上面示例中的<img>標(biāo)簽被包括在<a>標(biāo)簽中的原因。標(biāo)簽<a>則包括了對(duì)這些事件類(lèi)型的支持。
通過(guò)數(shù)組(arrays)裝載多個(gè)圖片
在實(shí)際情況中,你很有可能需要預(yù)裝載不止一張的圖片;比如,對(duì)于包括多個(gè)圖片的菜單條,或者希望實(shí)現(xiàn)平滑的動(dòng)畫(huà)效果。要實(shí)現(xiàn)這些并不困難,只需要利用JavaScript的數(shù)組,如下例所示:
<script language="JavaScript">
function preloader()
{
// counter
var i = 0;
// create object
imageObj = new Image();
// set image list
images = new Array();
images[0]="image1.jpg"
images[1]="image2.jpg"
images[2]="image3.jpg"
images[3]="image4.jpg"
// start preloading
for(i=0; i<=3; i++)
{
imageObj.src=images[i];
}
}
</script>
在上面的例子中,定義了變量i以及名為imageObj的Image()對(duì)象。然后定義了新數(shù)組images[],每一個(gè)數(shù)組元素將存儲(chǔ)需要預(yù)裝載圖片的地址來(lái)源。最后,使用一個(gè)for()循環(huán)來(lái)遍歷整個(gè)數(shù)組,并對(duì)每個(gè)元素指定Image()對(duì)象,以此將圖片都預(yù)裝載到緩存中。
- 在JavaScript中如何訪問(wèn)暫未存在的嵌套對(duì)象
- 詳解js訪問(wèn)對(duì)象的屬性和方法
- JS實(shí)現(xiàn)訪問(wèn)DOM對(duì)象指定節(jié)點(diǎn)的方法示例
- js return返回多個(gè)值,通過(guò)對(duì)象的屬性訪問(wèn)方法
- js中通過(guò)getElementsByName訪問(wèn)name集合對(duì)象的方法
- JavaScript中子對(duì)象訪問(wèn)父對(duì)象的方式詳解
- 淺析JavaScript訪問(wèn)對(duì)象屬性和方法及區(qū)別
- JS訪問(wèn)對(duì)象兩種方式區(qū)別解析
相關(guān)文章
JavaScript實(shí)現(xiàn)PC端四格密碼輸入框功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)PC端四格密碼輸入框功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02使用js Math.random()函數(shù)生成n到m間的隨機(jī)數(shù)字
何使用js生成n到m間的隨機(jī)數(shù)字,主要目的是為后期的js生成驗(yàn)證碼做準(zhǔn)備,Math.random()函數(shù)返回0和1之間的偽隨機(jī)數(shù)2014-10-10JavaScript斷言與類(lèi)型守衛(wèi)及聯(lián)合聲明超詳細(xì)介紹
這篇文章主要介紹了JavaScript斷言與類(lèi)型守衛(wèi)及聯(lián)合聲明,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-11-11JavaScript截取字符串的Slice、Substring、Substr函數(shù)詳解和比較
這篇文章主要介紹了JavaScript截取字符串的Slice、Substring、Substr函數(shù)詳解和比較,需要的朋友可以參考下2014-03-03JavaScript判斷手機(jī)號(hào)運(yùn)營(yíng)商是移動(dòng)、聯(lián)通、電信還是其他(代碼簡(jiǎn)單)
本文由腳本之家小編給大家分享的基于js判斷手機(jī)號(hào)運(yùn)行商是移動(dòng)、聯(lián)通、電信還是其他的,然后根據(jù)不同的運(yùn)營(yíng)商做出對(duì)應(yīng)的處理,感興趣的朋友一起學(xué)習(xí)吧2015-09-09關(guān)于JS數(shù)據(jù)類(lèi)型檢測(cè)的多種方式總結(jié)
Javascript中檢查數(shù)據(jù)類(lèi)型一直是老生常談的問(wèn)題,類(lèi)型判斷在web開(kāi)發(fā)中也有著非常廣泛的應(yīng)用,所以下面這篇文章主要給大家介紹了關(guān)于JS數(shù)據(jù)類(lèi)型檢測(cè)的那些事,需要的朋友可以參考下2021-09-09如何為你的JS項(xiàng)目添加智能提示與類(lèi)型檢查詳解
這篇文章主要給大家介紹了關(guān)于如何為你的JS項(xiàng)目添加智能提示與類(lèi)型檢查的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03uniapp 實(shí)現(xiàn)微信小程序全局分享的示例代碼
本文主要介紹了uniapp 實(shí)現(xiàn)微信小程序全局分享的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12jquery的$getjson調(diào)用并獲取遠(yuǎn)程的JSON字符串問(wèn)題
jQuery中常用getJSON來(lái)調(diào)用并獲取遠(yuǎn)程的JSON字符串,將其轉(zhuǎn)換為JSON對(duì)象,如果成功,則執(zhí)行回調(diào)函數(shù),本文將詳細(xì)介紹,需要的朋友可以參考下2012-12-12