精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端性能優化——圖片篇

開發 前端
圖片眾多以及圖片體積過大往往會影響頁面加載速度,造成不良的用戶體驗,所以對圖片進行優化勢在必行。

 在類電商類項目,往往存在大量的圖片,如 banner 廣告圖,菜單導航圖,美團等商家列表頭圖等。圖片眾多以及圖片體積過大往往會影響頁面加載速度,造成不良的用戶體驗,所以對圖片進行優化勢在必行。

我們先來看一個頁面啟動時加載的圖片信息。

http.png

如圖所示,這個頁面啟動時加載了幾十張圖片(甚至更多),而這些圖片請求幾乎是并發的,在 Chrome 瀏覽器,最多支持的并發請求次數是有限的,其他的請求會推入到隊列中等待或者停滯不前,直到上輪請求完成后新的請求才會發出。所以相當一部分圖片資源請求是需要排隊等待時間的,過多的圖片必然會影響頁面的加載和展示。

選擇合適的圖片格式

JPEG

JPEG 是由 Joint Photographic Experts Group 所開發出的一種圖片。它最大的特點是 有損壓縮。這種高效的壓縮算法使它成為了一種非常輕巧的圖片格式。另一方面,即使被稱為“有損”壓縮,JPG 的壓縮方式仍然是一種高質量的壓縮方式:當我們把圖片體積壓縮至原有體積的 50% 以下時,JPG 仍然可以保持住 60% 的品質。此外,JPG 格式以 24 位存儲單個圖,可以呈現多達 1600 萬種顏色,足以應對大多數場景下對色彩的要求,這一點決定了它壓縮前后的質量損耗并不容易被我們人類的肉眼所察覺。

優點

  •  JPEG 格式的圖片可以呈現數百萬種顏色。所以每當網站需要呈現色彩豐富的圖片,JPEG 總是最佳選擇。
  •  有損壓縮,你可以通過壓縮大大的減少圖片的體積,一般圖片用 60%級別比較合適,如果選擇大于 75%的壓縮等級,則會使圖片有明顯的質量下降。
  •  無兼容性問題,所以開發者可以放心隨意使用。

使用場景

  •  JPG 適用于呈現色彩豐富的圖片,在我們日常開發中,JPEG 圖片經常作為大的背景圖、輪播圖或 Banner 圖出現。
  •  但是有損壓縮后的圖片確實很難露出馬腳,當它處理矢量圖形和 Logo 等線條感較強、顏色對比強烈的圖像時,人為壓縮的圖片模糊會相當明顯。
  •  JPEG 圖像不支持透明度處理,透明圖片可選擇使用 PNG。

PNG

PNG(可移植網絡圖形格式)是由 W3C 開發的圖片格式,是一種無損壓縮的高保真的圖片格式。它同時支持 8 位和 24 位,這里都是二進制數的位數。按照我們前置知識里提到的對應關系,8 位的 PNG 最多支持 256 種顏色,而 24 位的可以呈現約 1600 萬種顏色。

PNG 圖片具有比 JPEG 更強的色彩表現力,對線條的處理更加細膩,對透明度有良好的支持。它彌補了上文我們提到的 JPEG 的局限性,唯一的缺點就是 體積太大。

應用場景

  •  PNG 在處理線條和顏色對比度方面的優勢,我們主要用它來呈現小的 Logo、顏色簡單且對比強烈的圖片或背景等。
  •  支持透明度處理,透明圖片可選擇使用 PNG

GIF

GIF 是一種最多支持 256 種顏色的 8 位無損圖片格式。這個限制讓 GIF 格式對于多顏色或者攝影圖片的展示無能為力。

優點

  •  支持 256 中顏色,文件體積通常都很小
  •  支持透明

應用場景

  • 支持動畫,適合去展示一些無限循環的動畫,比如圖標、表情、廣告欄等。
  •  對于一些只有簡單色彩的圖片非常合適。

WebP

WebP 是一種同時提供了有損壓縮與無損壓縮(可逆壓縮)的圖片文件格式,派生自影像編碼格式 VP8。它像 JPEG 一樣對細節豐富的圖片信手拈來,像 PNG 一樣支持透明,像 GIF 一樣可以顯示動態圖片,集多種圖片文件格式的優點于一身。

WebP 最初在 2010 年發布,目標是減少文件大小,但達到和 JPEG 格式相同的圖片質量,希望能夠減少圖片檔在網絡上的發送時間。根據 Google 較早的測試,WebP 的無損壓縮比網絡上找到的 PNG 檔少了 45%的文件大小,即使這些 PNG 檔在使用 pngcrush 和 PNGOUT 處理過,WebP 還是可以減少 28%的文件大小。

雖然 webP 有諸多優點,但是它不能完全替代 JPEG 和 PNG,因為瀏覽器對 WebP 支持并不普遍。特別是移動端 IOS 系統基本不支持。

webp.png

圖片壓縮

我們再來看一下一張圖片的加載過程:

load.png

圖片眾多以及圖片體積過大往往會影響頁面加載速度,造成不良的用戶體驗,有部分圖片達到幾百 kB,甚至 2M(這鍋必須運營背,非得上傳高清大圖不可?),直接導致了加載時間過長。所以對于體積過大的圖片,在保持圖片在可接受的清晰度范圍內可適當對圖片大小進行壓縮。

圖片壓縮又分為有損壓縮和無損壓縮。

有損壓縮

有損壓縮指在壓縮文件大小的過程中,損失了一部分圖片的信息,也即降低了圖片的質量(即圖片被壓糊了),并且這種損失是不可逆的。常見的有損壓縮手段是按照一定的算法將臨近的像素點進行合并。壓縮算法不會對圖片所有的數據進行編碼壓縮,而是在壓縮的時候,去除了人眼無法識別的圖片細節。因此有損壓縮可以在同等圖片質量的情況下大幅降低圖片的體積。例如 jpg 格式的圖片使用的就是有損壓縮。

無損壓縮

無損壓縮指的是在壓縮圖片的過程中,圖片的質量沒有任何損耗。我們任何時候都可以從無損壓縮過的圖片中恢復出原來的信息。壓縮算法對圖片的所有的數據進行編碼壓縮,能在保證圖片的質量的同時降低圖片的體積。例如 png、gif 使用的就是無損壓縮。

下面是各種圖片格式的壓縮類型

image.png

工具壓縮

  •  tinypng[1] 免費、批量、速度塊
  •  智圖壓縮[2] 百度很難搜到官網了,免費、批量、好用
  •  squoosh[3] 在線圖片壓縮工具
  •  compressor[4] 支持 JPG、PNG、SVG、GIF

webpack 壓縮

工程化的項目可以在 webpack 里面配置 image-webpack-loader 進行圖片壓縮

    1.  安裝依賴 

  1. npm install --save-dev image-webpack-loader 

    2.  配置 webpack 

  1. module.exports = {  
  2. ...  
  3.   module: {  
  4.     rules: [  
  5.       { 
  6.          test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,  
  7.         use: [  
  8.           { 
  9.              loader: 'file-loader',  
  10.             options: { 
  11.                name: '[name].[hash:7].[ext]'  
  12.             },  
  13.           },  
  14.           {  
  15.             loader: 'image-webpack-loader',  
  16.             options: {  
  17.               mozjpeg: {  
  18.                 progressive: true,  
  19.                 quality: 50,  
  20.               },  
  21.               optipng: {  
  22.                 enabled: true,  
  23.               },  
  24.               pngquant: {  
  25.                 quality: [0.5, 0.65],  
  26.                 speed: 4,  
  27.               },  
  28.               gifsicle: {  
  29.                 interlaced: false,  
  30.               },  
  31.               webp: { // 不支持WEBP就不要寫這一項  
  32.                 quality: 75  
  33.               },  
  34.             },  
  35.           },  
  36.         ], 
  37.       }, 
  38.     ],  
  39.   }, 

至于要不要使用插件自動壓縮就見仁見智了,因為有些 UI 和產品會說壓縮出來的效果圖片不是他們想要的。

使用雪碧圖

雪碧圖,CSS Sprites,國內也叫 CSS 精靈,是一種 CSS 圖像合成技術,主要用于小圖片顯示。

瀏覽器請求資源的時候,同源域名請求資源的時候有最大并發限制,chrome 為 6 個,就比如你的頁面上有 10 個相同 CDN 域名小圖片,那么需要發起 10 次請求去拉取,分兩次并發。第一次并發請求回來后,發起第二次并發。如果你把 10 個小圖片合并為一張大圖片的畫,那么只用一次請求即可拉取下來 10 個小圖片的資源。減少服務器壓力,減少并發,減少請求次數。

優點

把諸多小圖片合成一張大圖,利用 backround-position 屬性值來確定圖片呈現的位置,可以有效的較少請求個數,而且,而不影響開發體驗,使用構建插件可以做到對開發者透明。適用于頁面圖片多且豐富的場景。

缺點

生成的圖片體積較大,減少請求個數同時也增加了圖片大小,不合理拆分將不利于并行加載。

合成雪碧圖

在 webpack 中,有相應的插件提供了自動合成雪碧圖的功能并且可以自動生成對應的樣式文件—— webpack-spritesmith,使用方法如下 

  1. var path = require('path')  
  2. var SpritesmithPlugin = require('webpack-spritesmith')  
  3. module.exports = {  
  4.   // ...  
  5.   plugins: [  
  6.     new SpritesmithPlugin({  
  7.       src: {  
  8.         cwd: path.resolve(__dirname, 'src/ico'),  
  9.         glob: '*.png', 
  10.       }, 
  11.        target: {  
  12.         image: path.resolve(__dirname, 'src/spritesmith-generated/sprite.png'),  
  13.         css: path.resolve(__dirname, 'src/spritesmith-generated/sprite.styl'),  
  14.       },  
  15.       apiOptions: {  
  16.         cssImageRef: '~sprite.png',  
  17.       },  
  18.     }),  
  19.   ],  

通過上面配置就能將 src/ico 目錄下的所有 png 文件合成雪碧圖,并且輸出到對應目錄,同時還可以生成對應的樣式文件,樣式文件的語法會根據你配置的樣式文件的后綴動態生成。

使用 iconfont

iconfont(字體圖標),即通過字體的方式展示圖標,多用于渲染圖標、簡單圖形、特殊字體等。

優點

  •  像使用字體一樣,設置大小、顏色及其他樣式,不失真
  •  輕量,易修改
  •  有效減少 HTTP 請求次數

推薦使用阿里的字體圖標庫:iconfont[5]

使用 base64 格式

原理:將圖片轉換為 base64 編碼字符串 inline 到頁面或 css 中。

優點

  •  提升性能: 網頁上的每一個圖片,都是需要消耗一個 http 請求下載而來的, 圖片的下載始終都要向服務器發出請求,要是圖片的下載不用向服務器發出請求,base64 可以隨著 HTML 的下載同時下載到本地.減少 https 請求。
  •  加密: 讓用戶一眼看不出圖片內容 , 只能看到編碼。
  •  方便引用: 在多個文件同時使用某些圖片時, 可以把圖片轉為 base64 格式的文件, 把樣式放在全局中, 比如 common.css, 以后在用的時候就可以直接加類名, 二不需要多層找文件路徑, 會提升效率

但需要注意的是:如果圖片較大,圖片的色彩層次比較豐富,則不適合使用這種方式,因為該圖片經過 base64 編碼后的字符串非常大,會明顯增大 HTML 頁面的大小,從而影響加載速度。

base64 化最常見的就是在 url-loader 中使用。 

  1. module.exports = {  
  2. ...  
  3.   module: {  
  4.     rules: [  
  5.       {  
  6.         test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,  
  7.         loader: 'url-loader',  
  8.         options: {  
  9.           limit: 10240,  
  10.           name: utils.assetsPath('img/[name].[hash:7].[ext]'),  
  11.         }  
  12.       },  
  13.     ],  
  14.   },  

這樣就能將項目中小于 10kb 的圖片轉化為 base64 應用到頁面中

使用 css 代替圖片。

比如實現修飾效果,如半透明、邊框、圓角、陰影、漸變等,在當前主流瀏覽器中都可以用 CSS 達成,這樣能減少圖片的請求,達到優化的目的。

缺點

  •  受限于 css 的瀏覽器的兼容性
  •  對于較復雜的圖案就無能為力了,寫也麻煩,開發成本大

使用 CDN 圖片

CDN 的全稱是 Content Delivery Network,即內容分發網絡。CDN 是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN 的關鍵技術主要有內容存儲和分發技術。

舉個簡單的例子:

以前買火車票大家都只能去火車站買,后來我們買火車票就可以在樓下的火車票代售點買了。

基本原理

CDN 的基本原理是廣泛采用各種緩存服務器,將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。

基本思路

CND 的基本思路是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN 系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet 網絡擁擠的狀況,提高用戶訪問網站的響應速度。

CDN 的優勢

  •  CDN 節點解決了跨運營商和跨地域訪問的問題,訪問延時大大降低;
  •  大部分請求在 CDN 邊緣節點完成,CDN 起到了分流作用,減輕了源站的負載。

圖片懶加載

懶加載是一種網頁性能優化的方式,它能極大的提升用戶體驗。圖片一直是影響網頁性能的主要元兇,現在一張圖片超過幾兆已經是很經常的事了。如果每次進入頁面就請求所有的圖片資源,那么可能等圖片加載出來用戶也早就走了。所以進入頁面的時候,只請求可視區域的圖片資源。

總結出來就是:

  •  減少資源的加載,頁面啟動只加載首屏的圖片,這樣能明顯減少了服務器的壓力和流量,也能夠減小瀏覽器的負擔。
  •  防止并發加載的資源過多而阻塞 js 的加載,影響整個網站的啟動,影響用戶體驗
  •  浪費用戶的流量,有些用戶并不想全部看完,全部加載會耗費大量流量。

原理

圖片懶加載的原理就是暫時不設置圖片的 src 屬性,而是將圖片的 url 隱藏起來,比如先寫在 data-src 里面,等當前圖片是否到了可視區域再將圖片真實的 url 放進 src 屬性里面,從而實現圖片的延遲加載。 

  1. function lazyload() {  
  2.   let viewHeight = document.body.clientHeight //獲取可視區高度  
  3.   let imgs = document.querySelectorAll('img[data-src]')  
  4.   imgs.forEach((item, index) => { 
  5.     if (item.dataset.src === '') return  
  6.     // 用于獲得頁面中某個元素的左,上,右和下分別相對瀏覽器視窗的位置  
  7.     let rect = item.getBoundingClientRect()  
  8.     if (rect.bottom >= 0 && rect.top < viewHeight) {  
  9.       itemitem.src = item.dataset.src  
  10.       item.removeAttribute('data-src') 
  11.     }  
  12.   })  
  13.  
  14. // 可以使用節流優化一下  
  15. window.addEventListener('scroll', lazyload) 

通過上面例子的實現,我們要實現懶加載都需要去監聽 scroll 事件,盡管我們可以通過函數節流的方式來阻止高頻率的執行函數,但是我們還是需要去計算 scrollTop,offsetHeight 等屬性,有沒有簡單的不需要計算這些屬性的方式呢,答案是有的---IntersectionObserver 

  1. const imgs = document.querySelectorAll('img[data-src]')  
  2. const config = {  
  3.   rootMargin: '0px',  
  4.   threshold: 0,  
  5.  
  6. let observer = new IntersectionObserver((entries, self) => {  
  7.   entries.forEach((entry) => {  
  8.     if (entry.isIntersecting) {  
  9.       let img = entry.target  
  10.       let src = img.dataset.src  
  11.       if (src) {  
  12.         img.src = src  
  13.         img.removeAttribute('data-src')  
  14.       }  
  15.       // 解除觀察  
  16.       self.unobserve(entry.target)  
  17.     }  
  18.   })  
  19. }, config)  
  20. imgs.forEach((image) => {  
  21.   observer.observe(image)  
  22. }) 

圖片預加載

圖片預加載,是指在一些需要展示大量圖片的網站,將圖片提前加載到本地緩存中,從而提升用戶體驗。

常用的方式有兩種,一種是隱藏在 css 的 background 的 url 屬性里面,一種是通過 javascript 的 Image 對象設置實例對象的 src 屬性實現圖片的預加載。

1、用 CSS 和 JavaScript 實現預加載 

  1. #preload-01 {  
  2.   background: url(http://domain.tld/image-01.png) no-repeat -9999px -9999px;  
  3.  
  4. #preload-02 {  
  5.   background: url(http://domain.tld/image-02.png) no-repeat -9999px -9999px;  
  6.  
  7. #preload-03 {  
  8.   background: url(http://domain.tld/image-03.png) no-repeat -9999px -9999px;  

通過 CSS 的 background 屬性將圖片預加載到屏幕外的背景上。當它們在 web 頁面的其他地方被調用時,瀏覽器就會在渲染過程中使用預加載(緩存)的圖片。該方法雖然高效,但仍有改進余地。使用該法加載的圖片會同頁面的其他內容一起加載,增加了頁面的整體加載時間。

為了解決這個問題,我們增加了一些 JavaScript 代碼,來推遲預加載的時間,直到頁面加載完畢。 

  1. function preloader() {  
  2.   if (document.getElementById) {  
  3.     document.getElementById('preload-01').style.background =  
  4.       'url(http://domain.tld/image-01.png) no-repeat -9999px -9999px'  
  5.     document.getElementById('preload-02').style.background =  
  6.       'url(http://domain.tld/image-02.png) no-repeat -9999px -9999px'  
  7.     document.getElementById('preload-03').style.background =  
  8.       'url(http://domain.tld/image-03.png) no-repeat -9999px -9999px'  
  9.   } 
  10.  function addLoadEvent(func) {  
  11.   var oldonload = window.onload  
  12.   if (typeof window.onload != 'function') {  
  13.     window.onload = func  
  14.   } else {  
  15.     window.onload = function () {  
  16.       if (oldonload) {  
  17.         oldonload()  
  18.       }  
  19.       func() 
  20.      }  
  21.   }  
  22.  
  23. addLoadEvent(preloader) 

2、使用 JavaScript 實現預加載 

  1. function preloader() {  
  2.   if (document.images) {  
  3.     var img1 = new Image()  
  4.     var img2 = new Image()  
  5.     var img3 = new Image()  
  6.     img1.src = 'http://domain.tld/path/to/image-001.gif'  
  7.     img2.src = 'http://domain.tld/path/to/image-002.gif'  
  8.     img3.src = 'http://domain.tld/path/to/image-003.gif'  
  9.   }  
  10.  
  11. function addLoadEvent(func) {  
  12.   var oldonload = window.onload  
  13.   if (typeof window.onload != 'function') {  
  14.     window.onload = func  
  15.   } else {  
  16.     window.onload = function () {  
  17.       if (oldonload) {  
  18.         oldonload()  
  19.       }  
  20.       func()  
  21.     }  
  22.   }  
  23.  addLoadEvent(preloader) 

響應式圖片加載

什么是響應式圖片加載?其實就是在不同分辨率的設備上顯示不同尺寸的圖片,避免資源的浪費。

常用的方法就是 css3 的媒體查詢(media query)。 

  1. @media  screen and (min-width: 1200px) {  
  2.   img {  
  3.     background-image: url('1.png');  
  4.   }  
  5.  
  6. @media  screen and (min-width: 992px) {  
  7.   img {  
  8.     background-image: url('2.png');  
  9.   }  
  10.  
  11. @media  screen and (min-width: 768px) {  
  12.   img {  
  13.     background-image: url('3.png');  
  14.   }  
  15.  
  16. @media screen and (min-width: 480px) {  
  17.   img {  
  18.     background-image: url('4.png');  
  19.   }  

此外,還可以使用 HTML5 的 picture 屬性進行響應式處理。方法如下:

  1.  創建 picture 標簽。
  2.  放置多個 source 標簽,以指定不同的圖像文件名,進而根據不同的條件進行加載。
  3.  添加一個回退的元素 
  1. <picture>  
  2.   <source srcset="src/img/l.png" media="(min-width: 1200px)" />  
  3.   <source srcset="src/img/2.png" media="(min-width: 992px)" />  
  4.   <source srcset="src/img/4.png" media="(min-width: 768px)" />  
  5.   <img src="src/img/4.png" />  
  6. </picture> 

需要注意的是:現在很多瀏覽器對于 picture 這個標簽還不支持,使用的時候需要加以注意。

picture.png

漸進式圖片

漸進式圖片的意思是在高畫質圖像加載完之前會先顯示低畫質版本。低畫質版本由于畫質低、壓縮率高,尺寸很小,加載很快。在兩者之間我們也可以根據需要顯示不同畫質的版本。

cat.png

漸進式圖片可以讓用戶產生圖片加載變快的印象。用戶不再盯著一片空白區域等待圖片加載,而能看到圖像變得越來越清晰,這樣對用戶體驗也是友好的。

骨架屏技術也是類似的原理。

總結

  1.  選擇合適的圖片格式和壓縮大圖,可從根源上截圖大圖加載過慢的問題。
  2.  使用雪碧圖,iconfont,base64,css 代替圖片等可減少圖片 http 請求,提高頁面加載速度。
  3.  使用 CDN 圖片可達到分流的效果,減少服務券壓力。
  4.  圖片懶加載,預加載,漸進式圖片等可不同程度減少白屏時間,提高產品體驗。

本文在github做了收錄

https://github.com/Michael-lzg/my--article/blob/master/other/%E5%89%8D%E7%AB%AF%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E5%9B%BE%E7%89%87%E7%AF%87.md 

 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2014-12-10 10:12:02

Web

2020-10-16 10:40:39

前端性能可視化

2022-05-17 09:02:30

前端性能優化

2022-11-16 12:03:13

性能優化前端

2020-10-16 09:00:12

前端開發技術

2019-11-01 14:00:58

前端性能優化代碼

2019-03-15 15:00:49

Webpack構建速度前端

2022-03-02 11:13:50

Web前端開發

2015-09-16 14:37:50

Android性能優化運算

2015-09-16 13:54:30

Android性能優化渲染

2015-09-16 15:48:55

Android性能優化電量

2015-09-16 15:21:23

Android性能優化內存

2021-08-02 10:50:57

性能微服務數據

2023-04-10 11:18:38

前端性能優化

2021-02-02 13:45:31

Vue代碼前端

2012-01-10 16:22:25

Web

2013-01-22 15:27:23

WebWeb前端

2020-03-09 16:43:06

腳本語言瀏覽器JavaScript

2024-01-03 08:20:05

Java字符串性能

2022-01-09 16:45:36

前端性能優化編程
點贊
收藏

51CTO技術棧公眾號

国产av精国产传媒| 欧美肥妇bbwbbw| 乱人伦视频在线| 91啦中文在线观看| 国产精品久久久久久久av大片| 欧美大波大乳巨大乳| 91国产精品| 亚洲国产精品久久久男人的天堂| 精品一区二区不卡| 亚洲系列第一页| 在线成人国产| 色综久久综合桃花网| 一个人看的视频www| 亚洲女同av| 亚洲卡通欧美制服中文| 欧美日韩精品一区| 国产99999| 日本人妖一区二区| 国内久久久精品| 99在线视频免费| 久久免费视频66| 欧美日韩国产系列| 国自产拍偷拍精品啪啪一区二区| 伊人在线视频| 91在线视频观看| 亚洲一区美女视频在线观看免费| 亚洲欧美日韩激情| 欧美视频在线观看| 色悠悠国产精品| 中文字字幕码一二三区| www.丝袜精品| 在线播放欧美女士性生活| www.射射射| 在线免费av导航| 国产精品不卡视频| 日韩免费中文专区| 日本黄在线观看| 国产精品白丝av| 国产深夜精品福利| 亚洲精品毛片一区二区三区| 国产一区二区三区成人欧美日韩在线观看| 欧美xxxx综合视频| 成人欧美一区二区三区黑人一| 香蕉久久夜色精品国产使用方法| 欧美zozozo| 99999精品| 亚洲一区二区三区久久久| 在线视频观看一区| 欧洲熟妇精品视频| 欧美性片在线观看| 色噜噜狠狠色综合中国| 成人久久久久久久久| 阿v视频在线| 偷偷要91色婷婷| 精品一区二区三区无码视频| av在线网址观看| 亚洲免费观看在线观看| 公共露出暴露狂另类av| 国产盗摄在线观看| 亚洲靠逼com| 免费网站永久免费观看| 丁香花在线电影| 午夜激情一区二区三区| 蜜桃传媒一区二区三区| 人狥杂交一区欧美二区| 欧美午夜美女看片| 91av俱乐部| 亚洲人成777| 欧美一区二区三区免费视频| 性生交大片免费看l| 成人春色在线观看免费网站| 亚洲国产成人精品女人久久久| 69亚洲乱人伦| 免费成人av| 中文字幕日韩精品在线观看| fc2ppv在线播放| 欧美阿v一级看视频| 欧美精品成人91久久久久久久| 日本特黄一级片| 老司机一区二区三区| 国产精品免费在线免费| 国产精品视频一二区| 国产黑丝在线一区二区三区| 国产一区二区在线网站| 国产在线资源| 亚洲免费观看高清完整版在线| 国产黄色激情视频| 一区二区电影免费观看| 欧美系列一区二区| 精品国产午夜福利在线观看| 久久91在线| 中文字幕亚洲激情| 麻豆亚洲av成人无码久久精品| 国产精品婷婷| 成人国产亚洲精品a区天堂华泰| 精品国产伦一区二区三区| 91女人视频在线观看| 亚洲最新免费视频| rebdb初裸写真在线观看| 在线一区二区三区| 少妇极品熟妇人妻无码| 国产精品亚洲片在线播放| 插插插亚洲综合网| 日本一区二区免费电影| 精品一区二区三区影院在线午夜| 国产一区二区精品免费| 日本免费视频在线观看| 欧美日韩性视频在线| 日本中文字幕影院| 亚洲人成网www| 欧美理论电影在线播放| 中文字幕永久在线| av中文字幕在线不卡| 色中文字幕在线观看| 中文字幕高清在线播放| 欧美一区二区三区公司| 成人黄色a级片| 一二三区精品| 99久久精品久久久久久ai换脸| 男男激情在线| 亚洲大片免费看| 一级黄色片在线免费观看| 深爱激情综合网| 国内外成人免费激情在线视频| 99久久精品国产成人一区二区| 久久久久久久久久久黄色 | 欧美一级bbbbb性bbbb喷潮片| 又骚又黄的视频| 久久先锋影音av| 日本手机在线视频| 试看120秒一区二区三区| 国产亚洲欧美日韩精品| 国产又黄又粗又爽| www.99精品| 久久这里只有精品18| 日本高清精品| 欧美伦理91i| 国产欧美一级片| 国产精品久久久久影院色老大| 免费无码国产v片在线观看| 风间由美中文字幕在线看视频国产欧美 | 制服丝袜中文字幕第一页| 国模精品一区| 国产成人精品免高潮费视频| 日韩三级电影网| 欧美性精品220| 精品无码在线视频| 在线综合欧美| 美女被啪啪一区二区| 国模私拍一区二区国模曼安| 亚洲变态欧美另类捆绑| 精品无码久久久久久久久| 夫妻av一区二区| 欧美黄网在线观看| 4438全国亚洲精品观看视频| 久久91精品国产91久久久| www.亚洲天堂.com| 一片黄亚洲嫩模| 韩国三级hd两男一女| 国内一区二区三区| 久久精品国产精品国产精品污 | 东京干手机福利视频| 亚洲一区二区中文在线| 91亚洲一线产区二线产区| 午夜国产欧美理论在线播放| 成人免费91在线看| xxxx成人| 亚洲精选在线观看| 伊人成人在线观看| 1区2区3区欧美| 伊人av在线播放| 99精品视频网| 奇米888一区二区三区| 日韩精品一级毛片在线播放| 另类专区欧美制服同性| 性中国xxx极品hd| 精品高清美女精品国产区| 精品少妇人妻一区二区黑料社区| 丝袜美腿一区二区三区| 黄色一级片网址| 激情亚洲另类图片区小说区| 国产不卡在线观看| 国产视频在线播放| 亚洲激情免费观看| 91视频在线视频| 亚洲精品一卡二卡| 一级特黄a大片免费| 日本不卡中文字幕| 免费cad大片在线观看| 日韩av黄色在线| 国产精品直播网红| av在线最新| 中文字幕久久亚洲| 天堂在线视频免费观看| 欧美三级日韩三级| 国产真人真事毛片| 国产精品你懂的| 日本久久久久久久久久| 蜜臀精品久久久久久蜜臀| 日本aa在线观看| 热久久天天拍国产| 精品蜜桃传媒| 欧美高清hd| 国产精品欧美激情在线播放| а√天堂8资源中文在线| 色狠狠久久aa北条麻妃| 日本人妻熟妇久久久久久| 欧美日韩免费不卡视频一区二区三区| 久久久精品国产sm调教| 中文字幕欧美区| 亚洲综合自拍网| 国产又黄又大久久| 欧美伦理视频在线观看| 亚洲精品视频啊美女在线直播| 中文字幕欧美人与畜| 亚欧洲精品视频在线观看| 99国产超薄丝袜足j在线观看| jvid一区二区三区| 日av在线播放中文不卡| 欧美黑人xx片| 久久亚洲综合国产精品99麻豆精品福利| 每日更新在线观看av| 亚洲精品一区二区三区精华液| 一区二区三区午夜| 欧洲精品中文字幕| 亚洲av中文无码乱人伦在线视色| 亚洲成人av福利| 久草免费新视频| 亚洲欧洲韩国日本视频| 欧美 日韩 国产 成人 在线观看| aa级大片欧美| 一级黄色免费视频| 国产成人免费av在线| 婷婷激情5月天| 另类中文字幕网| 一道本视频在线观看| 毛片一区二区| 国内外成人激情视频| 日韩午夜高潮| 国产二区视频在线| 日韩一级在线| 免费国产黄色网址| 国产精品色网| 欧美日韩在线中文| 欧美一级一区| 国产麻花豆剧传媒精品mv在线| 在线亚洲观看| 37pao成人国产永久免费视频| 国产日本精品| 日韩少妇内射免费播放18禁裸乳| 99在线观看免费视频精品观看| 国产av人人夜夜澡人人爽麻豆| 亚洲婷婷免费| 婷婷五月综合缴情在线视频| 野花国产精品入口| 久久久久久久久久久福利| 另类国产ts人妖高潮视频| 免费无码av片在线观看| 性欧美长视频| 992kp快乐看片永久免费网址| 秋霞电影网一区二区| 污污网站免费看| 国内不卡的二区三区中文字幕 | 亚洲精品一区二区在线播放∴| 国产日韩精品一区二区| 年轻的保姆91精品| 国产一区二区三区色淫影院 | 一本久久a久久精品vr综合 | 在线精品视频一区| 精品国产一区二区三区免费| 亚洲肉体裸体xxxx137| 午夜精品电影在线观看| 天天做天天爱天天爽综合网| 成人在线免费观看网址| 亚洲伦理一区| 看欧美ab黄色大片视频免费| 麻豆国产精品一区二区三区| 韩国三级丰满少妇高潮| 成a人片亚洲日本久久| 免费在线观看污| 最新国产精品久久精品| 国产在线拍揄自揄拍无码视频| 狠狠色狠狠色综合日日五| 中文字幕欧美人妻精品一区蜜臀| 正在播放亚洲一区| 亚州精品国产精品乱码不99按摩| 在线观看中文字幕亚洲| 中文字幕有码在线观看| 欧美在线一区二区三区四| 欧美一级做一级爱a做片性| 国产高清不卡av| 国产一区二区观看| av在线免费观看国产| 日韩精品亚洲专区| 91超薄肉色丝袜交足高跟凉鞋| 久久久高清一区二区三区| 欧美一区二区三区爽爽爽| 狠狠干狠狠久久| www.久久久久久| 亚洲最新av在线网站| 久草在线新免费首页资源站| 国产精品久久久久久久久免费看| 亚洲天堂中文字幕在线观看| 亚洲成人蜜桃| 99在线观看免费视频精品观看| 91丝袜超薄交口足| 久久久久久免费| av资源吧首页| 制服丝袜亚洲播放| 国产在线一二| 91精品国产91久久久久久| 99精品国产九九国产精品| 免费成人深夜夜行视频| 欧美日韩国产免费观看| 午夜免费看毛片| 久久久久青草大香线综合精品| 久久国产免费观看| 欧美日韩国产色站一区二区三区| 视频在线观看你懂的| 欧美丰满少妇xxxx| 精品一区二区三区四区五区| 天堂av一区二区| 新狼窝色av性久久久久久| 在线中文字日产幕| 亚洲欧美日韩小说| 亚洲一区在线观| 亚洲视频精品在线| 日韩电影毛片| 久久资源av| 亚洲国产一区二区精品专区| 中国男女全黄大片| 伊人婷婷欧美激情| 国产普通话bbwbbwbbw| 日韩亚洲国产中文字幕| 韩国三级一区| 蜜桃成人免费视频| 一本综合久久| 国产男女猛烈无遮挡a片漫画 | 无码视频在线观看| 国产视频一区在线| 鲁鲁在线中文| 久久青青草原一区二区| 在线视频精品| 日本少妇色视频| 欧美日韩国产精品一区二区三区四区| 欧美视频一二区| 91禁外国网站| 亚洲资源网站| 熟妇人妻无乱码中文字幕真矢织江 | 欧美视频免费在线观看| 天堂成人在线观看| 欧美伊久线香蕉线新在线| 要久久电视剧全集免费| 日韩一级在线免费观看| 久久精品人人做人人爽人人| 蜜臀99久久精品久久久久小说| 国产亚洲欧洲高清| 国产精品麻豆成人av电影艾秋| 中文字幕一区二区三区5566| 国产一区二区三区在线观看免费视频 | 国产精品久久久久久无人区 | 欧美一区二区女人| av网站在线看| 国产精品嫩草在线观看| 国产欧美三级| mm131丰满少妇人体欣赏图| 精品视频色一区| 成人影院在线看| 国产精品有限公司| 亚洲欧美日本国产专区一区| 永久免费成人代码| 欧美电影在线免费观看| 污污的视频在线观看| 精品久久久三级| 麻豆精品视频在线| 精品爆乳一区二区三区无码av| 亚洲国产精品福利| 天天综合网站| 特级黄色录像片| 91美女蜜桃在线| 亚洲一区二区人妻| 国模视频一区二区| 欧美在线观看视频一区| 色姑娘综合天天| 黑人与娇小精品av专区| 黄色网页在线看| 黄色小网站91| 九一久久久久久| 日韩黄色三级视频| 少妇高潮久久77777| 国产精品xxxav免费视频| 国产三级日本三级在线播放| 亚洲欧美aⅴ...| 国产有码在线| 99在线观看视频网站| 爽好久久久欧美精品| 极品颜值美女露脸啪啪| 一区二区三区美女xx视频| aaa国产精品视频| 最新中文字幕免费视频|