麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > HTML > 正文

利用簡潔的圖片預加載組件提升html5移動頁面的用戶體驗

2024-08-26 00:18:35
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了利用簡潔的圖片預加載組件提升html5移動頁面的用戶體驗 的相關資料,需要的朋友可以參考下
 
 

在做h5移動頁面,相信大家一定碰到過頁面已經打開,但是里面的圖片還未加載出來的情況,這種問題雖然不影響頁面的功能,但是不利于用戶體驗。拋開網速的原因,解決這個問題有多方面的思路:最基本的,要從http請求合并,緩存管理,圖片壓縮等方面做性能優化;另外就是可以對頁面里用到的所有圖片做預加載的處理,當用戶打開頁面的時候不立即顯示第一屏,而是先顯示資源加載效果,等到加載完畢,再來顯示頁面的主內容,這樣就能解決那個問題。雖然這種加載效果占用了用戶的瀏覽時間,但是我們可以把它做的好看有趣一點,所以也不會影響用戶體驗。本文實踐了這種想法,提供一個非常簡潔的圖片預加載組件,實現簡單,功能不弱,在做移動頁面的時候應該對你有參考價值。 
效果: 

圖片預加載組件,html5

1. 實現思路

html里面的img標簽和css中background-imag等都會觸發瀏覽器去加載相關的圖片,但是如果這個圖片已經加載過了的話,瀏覽器就會直接使用這張已經加載好的圖片,從而能夠瞬間在頁面中渲染出來。通過javascript,創建Image對象,然后把這些對象的src屬性設置成要加載的圖片地址也能觸發瀏覽器加載圖片,利用這一點就能實現圖片預加載的功能:在頁面里首先把那些用到了相關的圖片的元素給藏掉,然后用js去加載圖片,等到所有圖片加載完畢再把藏掉的元素顯示即可。不過這僅僅是一個基本的實現思路,要完成一個功能較健壯的預加載組件,還有以下三個問題: 
1)進度問題 
由于預加載的同時,還得做一個預加載的效果,這就需要把加載的進度實時通知到外部上下文才行。關于進度有兩個實現方式,第一是已加載的數據大小/總的數據大小,第二是已加載的文件數/總的文件數,在瀏覽器里面,采用第一種方式是不現實的,根本沒有原生的辦法可以做到,所以只能采用第二種。 
2)圖片加載失敗的問題 
比如說有4張圖片,已經加載了50%,在加載第三張的時候出錯了,該不該將進度反饋成75%呢?答案是:應該。如果不這么處理的話,進度永遠無法到100%,頁面主內容就沒機會顯示了,雖然圖片加載有失敗的情況,但是跟加載器沒有關系,也許圖片本身就不存在呢?也就是說圖片加載失敗不應該影響加載器的功能。 
3)圖片加載超時的問題 
圖片不能加載太久,否則用戶一直停留在加載效果上看不到主內容,用戶的等待時間不可控制地延長,導致用戶體驗下降,這樣就有悖加載器的初衷了。所以應該給每個圖片設置一個加載的超時時間,如果在所有圖片的超時時間之后,還沒加載完,就應該主動放棄加載,通知外部上下文加載完畢,顯示主內容。 
綜合以上這些需求,本文提供的實現是:

JavaScript Code復制內容到剪貼板
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年人在线免费播放视频 | 久久久aa| 日韩黄色片免费看 | 亚洲第一成网站 | 久久精品一区二区三区国产主播 | 日韩一级片毛片 | 午夜精品福利视频 | 久久免费综合视频 | 中文字幕在线观看网址 | 欧美一级视频免费看 | 久久精品亚洲国产奇米99 | 久久老司机精品视频 | 在线播放视频一区二区 | 精品乱码久久久久 | 午夜影院在线免费观看 | 一本大道av | 国产成人自拍小视频 | 在线 日本 制服 中文 欧美 | 国产一级在线观看视频 | 偿还的影视高清在线观看 | 91精品国产91久久久 | 久久精品国产久精国产 | 黄片毛片一级 | 久草在线观看福利视频 | 一区二区三区日韩电影 | 韩国一大片a毛片 | 日本中文视频 | 国产一级一片免费播放 | 精国品产一区二区三区有限公司 | 56av国产精品久久久久久久 | 午夜视频在线看 | 欧美乱论 | 在线观看国产一区二区三区 | 日韩精品中文字幕一区 | 一日本道久久久精品国产 | 国产成人精品区一区二区不卡 | 亚洲网在线观看 | 欧美成人免费电影 | 国产青草视频在线观看视频 | 久久成人午夜视频 | 日本看片一区二区三区高清 |