999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網站圖片加載技術的設計與實現

2019-11-22 02:07:52項陽陽
冶金與材料 2019年5期
關鍵詞:頁面按鈕資源

項陽陽

(武漢職業技術學院 計算機技術與軟件工程學院,湖北 武漢 430074)

隨著現代科技的進步,技術的發展,改變了人們的閱讀習慣。圖片作為最容易引起人類共鳴和最容易被理解的一種傳播媒介,被廣泛應用于網頁設計中。圖片文件相對來說比較大,對用戶的網絡要求比較高,如果一個頁面有多張圖片,在用戶打開的同時加載的話,需要較長時間的數據傳輸,用戶就需要等待一段時間才能看到頁面內容。研究表明網頁只有在2 s 內打開用戶最為滿意,用戶能夠忍受的最長等待時間是6~8 s[1]。因此縮短用戶等待時間是網頁開發者追求的目標。處理頁面的圖片加載方式是縮短網頁加載時間,提高用戶滿意度的關鍵要點是考驗前端開發工程師技術的難點。目前業界較成熟的圖片處理技術有3 種:懶加載、預加載、兩者結合形成的基于用戶行為的資源預加載。

1 懶加載的原理及實現

懶加載技術就是進入頁面時并不加載全部的頁面內容,尤其是圖片內容,只加載第一屏內容,當用戶滾動屏幕,圖片出現在屏幕視窗時再去加載。懶加載實現的原理是通過判斷圖片是否進入可視窗口確定是否加載圖片,防止頁面一次性向服務器請求大量請求而導致服務器響應變慢或者一次請求較多資源占用帶寬較多造成頁面卡頓或者崩潰等問題。

典型的懶加載實現方式是先將img 標簽的src 鏈接設為同一張小圖片,將真實的圖片地址存放在自定義屬性比如data-src 中,之后使用JS 監聽瀏覽器滾動事件,發生滾動時判斷需要懶加載的圖片元素是否進入可視窗口,進入可視窗口時立即將自定義屬性data-src中存放的地址存儲到src 屬性中加載圖片。圖片不再是一次性的全部加載,而是隨著鼠標的滾動,一張張依次加載進來,提高了網頁響應速度,改善用戶體驗[2]。

懶加載實現的關鍵代碼:

<img src="test1.jpg" data-src="img1.jpg">

//監聽滾動函數

$(window).on('scroll',function() { //檢查是否出現在當前可視窗口})

//加載圖片

function showImg($el){$el.attr('src',$el.attr('data-src'));}

懶加載的優點:

(1)懶加載對于圖片較多頁面很長的業務場景很適用,可以減少無效資源的加載;

(2)顯著的提高頁面加載速度,又不下載多余的資源節省了流量;同時更少的圖片并發請求數也可以減輕服務器的壓力。

2 預加載的原理及實現

預加載就是提前加載圖片放到本地緩存中,當用戶需要使用時,直接從緩存中讀取,相對于網絡讀取速度提高非常多,如果一張網頁中圖片占據比例較大,采用預加載可以實現圖片快速發布,提高用戶體驗。實現預加載的方法比較多,可以使用CSS/JS 或者兩者組合使用,可以根據實際的場景設計合適的解決方案。下面給出一種常見的實現方式——通過CSS 實現預加載:將圖片放到窗口外元素上(或者隱藏元素上),在頁面的其他地方使用時,直接將img 標簽的src 屬性設置為對應元素的背景圖片地址,此時直接從緩存讀取,不需要再次加載,提高響應速度[3]。關鍵實現代碼如下:

#preload01 {background:url (http://test.com/image01.jpg)no-repeat -9999px -9999px;}

優點:實現簡單,不需要任何JS 代碼,效率高

缺點:用戶進入頁面加載頁面其他內容時圖片一起加載,增加了頁面的加載時間,頁面首屏的加載可能會產生響應延時。

懶加載是當圖片進入可視窗口時加載,可能會產生短暫的延時;預加載可以減少該延時,但是用戶并非需要頁面上的全部內容,全部加載會浪費帶寬或流量資源。如果將二者結合起來,即使用懶加載的省流量省資源,又能夠使用預加載無延時的良好體驗,便形成基于用戶行為的資源預加載。

3 基于用戶行為的資源預加載實現

基于用戶行為的資源預加載實現:可以通過典型的頁面應用選項卡頁面來詳細講解。

圖1 選項卡頁面

選項卡頁面是基于用戶點擊選項卡標簽觸發切換效果,因此如果用戶未點擊 “選項卡2”,“選項卡3”按鈕,則對應的選項卡內容永遠都看不到。在這鐘情況下后面兩個選項卡的內容就沒必要提前預加載了。因此分析完頁面之后,需要對“選項卡1”進行預加載,“選項卡2”和“選項卡3”進行懶加載處理。懶加載的加載處理發生在用戶點擊選項卡按鈕之后,那么就會產生短暫的空白,過一會兒圖片才會出現,那么結合預加載的思想,是否可以進行改進呢?分析用戶點擊選項卡的行為,可以拆解為如下步驟:

mouseenter 選項卡->mouseover 按鈕->mousedown按鈕->產生點擊事件,如果用戶將鼠標移到選項卡的時候產生mouseenter 或者mouseover 的時候,用戶將有極大概率點擊該選項卡按鈕,因此可以捕捉用戶的mouseenter 或者mouseover 行為提前預加載圖片。這樣就能夠將懶加載和預加載完美結合。實現關鍵代碼如下:

<img src="img1.jpg" class="active">

/ 監聽mouseenter 鼠標移入行為預加載圖片tabs.on({

mouseenter:function(){

//src 換成真實地址

target.attr('src',target.attr('data- src')).removeAttr('data- src')}

}

});

4 結 語

本文主要描述現在業界常用的Web 前端處理網站圖片技術的三種實現方式:懶加載、預加載、基于用戶行為的資源預加載。網絡頁面日益復雜,內容日益多樣,因此在網站的開發過程中,開發人員需要仔細分析用戶需求,設計代碼實現,根據實際需求選擇合適的技術實現。

猜你喜歡
頁面按鈕資源
這些按鈕能隨便按嗎?
大狗熊在睡覺
當你面前有個按鈕
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
基礎教育資源展示
一樣的資源,不一樣的收獲
資源回收
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 欧美中文一区| 欧美a在线视频| 国产精品黄色片| 色天堂无毒不卡| 国产国产人成免费视频77777| 五月六月伊人狠狠丁香网| 亚洲国产中文综合专区在| 国产精品免费福利久久播放 | 国产在线观看第二页| 精品超清无码视频在线观看| 色天堂无毒不卡| 国产香蕉在线视频| 精品一区二区三区自慰喷水| 国产成人1024精品下载| 亚洲熟女中文字幕男人总站| 成人国产三级在线播放| 97国产一区二区精品久久呦| 欧美在线视频不卡第一页| 成人福利一区二区视频在线| 99热这里只有精品国产99| 国产va欧美va在线观看| a级高清毛片| 一级毛片不卡片免费观看| 中国特黄美女一级视频| 在线va视频| 国产黄网永久免费| 日韩精品亚洲一区中文字幕| 永久免费av网站可以直接看的| a级毛片免费在线观看| 狠狠五月天中文字幕| 国产在线97| 国产精品手机视频一区二区| 亚洲国产成人无码AV在线影院L | www.av男人.com| 亚洲精品麻豆| 日本一区二区不卡视频| 亚洲综合香蕉| 女人18毛片一级毛片在线| 午夜国产不卡在线观看视频| 91高清在线视频| 欧美黄网在线| 色欲色欲久久综合网| 久久网欧美| 亚洲永久视频| 国产精品免费电影| 亚洲天堂在线免费| 99久久国产综合精品2023| 中字无码精油按摩中出视频| 欧美、日韩、国产综合一区| 色婷婷亚洲综合五月| 日韩精品成人在线| 日本三级黄在线观看| 亚洲欧美另类色图| 欧洲在线免费视频| 自慰网址在线观看| 精品一区国产精品| 国产一区二区人大臿蕉香蕉| 国产导航在线| 欧美福利在线播放| 国产在线精彩视频二区| 视频二区中文无码| 国产成人综合日韩精品无码首页| 免费人成视网站在线不卡| 午夜毛片免费观看视频 | 黄色成年视频| 国产精品久久久久久影院| 粉嫩国产白浆在线观看| 在线毛片免费| 成人欧美日韩| 欧美日韩国产系列在线观看| 91蝌蚪视频在线观看| 国产精品网址在线观看你懂的| 在线国产三级| 亚洲欧美成人影院| 99视频精品全国免费品| 日韩欧美中文字幕在线韩免费| 婷婷久久综合九色综合88| 欧美国产视频| 中文字幕va| 欧美自慰一级看片免费| 欧美高清国产| 国产亚洲视频播放9000|