2010-10-13 49 views
0

我有一個設置src屬性的圖像。在Javascript中正常預加載圖像(沒有任何JS庫)?

我想替換圖像,但與服務器的連接速度較慢,加載新圖像所需的時間不可忽略。

是否有可能創建內部Image對象,在其上設置「onLoadListener」類型,加載圖像,然後將其設置爲原始圖像的src屬性?在JavaScript

+0

這是可能的,但它取決於客戶端的緩存設置。如果客戶端完全關閉緩存,則您的請求數會增加一倍。 (一個用於預先加載圖像,一個用於實際顯示)(使用'Image') – Lekensteyn 2010-10-13 14:42:59

+0

幸運的是,在我的用例中啓用了緩存:) – pixel 2010-10-13 14:44:03

回答

2

您可以預先載入的圖片是這樣的...

myImage = new Image(); 
myImage.onload = function() { alert("Loaded"); }; 
myImage.src = "logo.gif"; 

你可以把邏輯彈出頁面,而不是警告-ING上的圖像。

+0

但是當我的連接速度很慢時,用戶會看到空白圖像一段時間。所以我應該像這樣加載圖像並設置myActualImageOnPage.src = myImage.src – pixel 2010-10-13 15:00:09

+0

@ pixel是的,他意味着在虛擬圖像對象的onload方法中更改真實元素的src。 – lincolnk 2010-10-13 15:08:45