圖片預加載和懶加載
圖片的可以為頁面帶來更好的展示效果,同時也能向用戶傳達更豐富的信息。在頁面上展示圖片時有兩類典型問題:
- 圖片最初是隱藏的,但在需要顯示時應能立即顯示出來(如輪播圖、相冊展示、幻燈片)
- 網頁很長,而且網頁上有大量的圖片(如電商網站中的商品列表),但這些圖片未必用戶都會看到,如果用戶根本就不滾動頁面來查看這些圖片,那這些圖片的加載就會成為一種浪費。
解決這兩類問題就需要使用圖片預加載和懶加載技術。
圖片預加載是在圖片顯示之前就讓瀏覽器加載這個圖片,這樣當瀏覽器真正需要顯示這個圖片時就能瞬間將它顯示出來,不需要再去下載和解碼。圖片預加載通常使用Image對象將圖片載入內存。Image對象實際上就是一個<img>標簽,只不過沒有append到頁面上而已。
圖片懶加載則是讓網頁下部分的圖片都先顯示同一個loading圖片,當頁面向下滾動,這些圖片露出來時,才將img標簽的src改為正確的圖片地址,這時瀏覽器才去下載圖片並解碼顯示到頁面上。圖片懶加載的關鍵是監視頁面的滾動及窗口大小變量並計算圖片是否處於窗口工作區內(即用戶能看到)。有很多圖片懶加載插件或獨立腳本,如:
jQuery.lazyload.js
echo.js
圖片預加載和懶加載
相關推薦
圖片預加載和懶加載
滾動 監視 PE 輪播圖 pan 地址 輪播 網頁 如果 圖片的可以為頁面帶來更好的展示效果,同時也能向用戶傳達更豐富的信息。在頁面上展示圖片時有兩類典型問題: 圖片最初是隱藏的,但在需要顯示時應能立即顯示出來(如輪播圖、相冊展示、幻燈片) 網頁很長,而且網頁上有大量
關於Hibernate中立即加載和懶加載的區別
數據 影響 時間 hibernate 進行 any 優點 表數 關系 當1表與2表之間有OneToMany(類似)關系時候, 對於1表的實體類,設置FetchType=EAGER時(也就是立即加載),取1表數據,對應2表的數據都會跟著一起加載,優點不用進行二次查詢。 缺點是
hibernate中懶加載和及加載的區別
出現 關閉 一個 數據 session異常 hibernate 懶加載 擔心 nat 在hibernate中懶加載會去緩存中找,如果要找的是某一個對象不會出問題,如果是要找某一個對象包含的對象會報session關閉異常,應為我們在緩存中查找了對象過後session就關閉
Angular4.0踩坑之路:探索子路由和懶加載
ati clas per 而是 配置 trap child property one 參考文章: Angular4路由快速入門 http://www.jianshu.com/p/e72c79c6968e Angular2文檔學習的知識點摘要——Angular模塊(NgMo
webpack4 系列教程(四): 單頁面解決方案--代碼分割和懶加載
hub 名稱 ava mas dirname 相關 static tps 界面 本節課講解webpack4打包單頁應用過程中的代碼分割和代碼懶加載。不同於多頁面應用的提取公共代碼,單頁面的代碼分割和懶加載不是通過webpack配置來實現的,而是通過webpack的寫法和內
EntityFramework(EF)貪婪加載和延遲加載的選擇和使用
this 可能 基本上 ring etime 代碼 數據 需要 loading 貪婪加載:顧名思議就是把所有要加載的東西一 次性讀取 1 using (var context = new MyDbContext()) 2 { 3 var orders = fr
異步加載和延遲加載
async 初始 屬性 異步 val sync 通過 執行 js代碼 異步加載的方案 1、動態插入script標簽 2、通過ajax去獲取js代碼,然後通過eval執行 3、script標簽上添加defer或者async屬性 4、創建並插入iframe,讓它異步執行
延遲加載和立即加載的代碼及區別
img cnblogs 進行 mage 效率 png targe ref 數據加載 延遲加載(lazy load)是(也稱為懶加載)Hibernate3關聯關系對象默認的加載方式,延遲加載機制是為了避免一些無謂的性能開銷而提出來的,所謂延遲加載就是當在真正需要數據的時候,才
EF中的預先加載和延遲加載
category lazy job lazy load AS ger esc csv AR 延遲加載(Lazy Loading):當實體第一次被讀取時,相關數據不會被獲取,只會讀取本身。延遲加載的數據不會一次性查出來,而是一條一條的查詢,這樣就會多次請求數據庫進行查詢。 預
php之自動加載(懶加載)
是不是 靜態方法 sta 過程 () 代碼 一個 new 封裝 有A類和B類,如果在A類實例化B類,最簡單直接的方法就是在B中使用include require_once A的文件,但是這種方法顯然是不友好的,在框架中葉不是這麽做的,在框架中使用的是自動加載的機制也
給Grid動態添加列和添加樣式
geb project idt 選中 center itl check actual plus BudgetProjectSearch: function () { $("#load").show(); var that = th
js中加“var”和不加“var”的區別
lob blog 方式 color 新版 模式 details delete ble Javascript聲明變量的時候,雖然用var關鍵字聲明和不用關鍵字聲明,很多時候運行並沒有問題,但是這兩種方式還是有區別的。可以正常運行的代碼並不代表是合適的代碼。 1.都加var,在
Javascript中事件繫結的函式加括號和不加括號的區別
今天在學習javascript中的時候遇到了一個問題,我將此問題簡化,抽取部分程式碼,如下: 說明:#fname為一個按鈕,test是一個普通函式 test函式 function test() { alert("執行test函式"); }
半加器和全加器的維基百科
加法器 摘自維基百科,自由的百科全書 在電子學中,加法器(英語:adder)是一種用於執行加法運算的數位電路部件,是構成電子計算機核心微處理器中算術邏輯單元的基礎。在這些電子系統中,加法器主要負責計算地址、索引等資料。除此之外,加法器也是其他一些硬體,例如二進位
Linux命令引數前加-、--和不加-的區別
1.單- 和雙- -的區別 1.1 引數前單-表示後面引數為字元形式,如tar -zxvf; 1.2 引數前加- - 表示後面引數為單詞,如rm - -help; 2.加-和不加-的區別 在這裡插入程式
結構體struct前面加 typedef和不加typedef的區別
直接把結構名定義為am_win_menutext然後使用,這樣在使用時必須這樣: struct am_win_menutext myval 定義了別名之後就可以: am_win_menutext myval 這樣可以更清晰。 主要在c語言裡這樣使用 使
調用類時,加括號和不加括號的區別
沒有 list 進行 none () 自己的 tno ext 根據 class ListNode: def __init__(self, x): self.val = x self.next = Nonea = ListNodea.val
Js事件繫結時,函式名加括號和不加括號有什麼區別
一,在js程式碼裡 加括號代表呼叫,執行這個方法; 不加括號目的是引用,代表把這個函式賦值給某個變數。 在下面程式碼裡: 1.1 btn.onclick=aa;是正
Android TextView 通過程式碼設定加粗和取消加粗 等效果無反應或者反應緩慢
今天在做TextView 通過不同點擊時間切換 加粗和常規時候。出現異常。。經常無反應的情況。 最後解決辦法是在原有程式碼設定基礎上 增加了一句重新整理語句。 TextView.postInvalidate(); 就是設定完元件屬性 重新整理一下元件就好了
python內函式名加括號和不加括號的區別
今天寫多執行緒程式的時候遇到了這樣的問題,import thread import time def loop1(): print time.ctime() time.sleep(2) print time.ctime() def loop2(