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

Web 端如何低成本打造 Native 體驗?

開發 開發工具
Web 應用在實際體驗上和 Native 應用仍然存在非常明顯的差距,那么如何低成本地把一個現有的網站改造成類 Native 的體驗呢?本文分享一種讓網站低成本漸進式實現 Native 化體驗的方式——同屏渲染。

 Web 應用在實際體驗上和 Native 應用仍然存在非常明顯的差距,那么如何低成本地把一個現有的網站改造成類 Native 的體驗呢?本文分享一種讓網站低成本漸進式實現 Native 化體驗的方式——同屏渲染。

Web 端體驗

在有了 PWA(Progressive web apps) 之后,Web Application 也具備了添加到桌面和離線訪問等能力,但是實際體驗上卻總是和 Native 應用存在非常明顯的差距。

我們可以看一下 Alibaba 的 M 站和 iOS 應用的錄屏(左邊為 WEB,右邊為 iOS APP):

??

??

 

我們可以看到,對于 Web Applicaiton 來說,在頁面中來回跳轉時訪問的總是割裂的,從上一個頁面到下一個頁面需要等 loading ,返回時很多內存狀態又都不在了,導致無法正確定位回之前的列表位置(這一點其實和不同的瀏覽器以及列表本身的實現方式有關,也有一些方案可以規避這個問題,在這里只是其中一個 case)。

這樣對于用戶的體驗傷害非常明顯,他能明確感覺到自己在用的并非一個 Application 而是一個 Website,而且在進行復雜的操作時整個鏈路也非常容易被中斷。

而其實這種體驗差異的根源,在于 B/S(Browser/Server)和 C/S(Client/Server)的差異。ServiceWorker 雖然提供了一些方案(例如 App Shell)讓我們較低成本的增強原有的體驗,但仍然難以解決頁面之間的割裂問題,很多相同的代碼在不同頁面間重復執行,每一次訪問內存狀態就會丟失。

渲染性能

當我們在說體驗的時候會顯得有點主觀,性能相比之下就容易衡量的多,而頁面割裂帶來的最為直觀的體驗差距其實就來自于渲染性能的差異。

在 Web 端一個典型的 CSR(Client Side Rendering)要經過的流程大致如下:

??

??

 

這其中有很多不符合我們預期的地方:

  • HTML/JS 都等到點擊后才開始加載(這點可以通過預加載的手段解決,其中 HTML 的預加載可以通過 ServiceWorker 進行)。
  • framework 等 JS 在不同頁面間總是重復執行的。
  • 加載 API 的時機非常晚,而加載 API 一般是耗時很長而且可以并行的部分,理論上加載時機越早越好。

所以理想中的渲染流程應該是下圖這樣:

??

??

 

其實對于 Native 應用也是如此,用戶點擊時基本就會開始加載 API 并且執行下個頁面的邏輯。其實一個優化的比較好(做了 preload 等)的 SPA 也是類似的效果,我們提前加載好下個頁面的 vendor ,點擊時直接只執行下個頁面的邏輯即可。

然而實際上對于一個較大的現存站點來說(例如 m.alibaba.com ),把整個網站作為一個 SPA 來維護是不太現實的,一方面不能適應當前多人協作的現狀,另外一方面穩定性上也不能接受修改一個頁面整個網站都要發布的方案。

那么,如何低成本的把一個現有的網站改造成類 Native 的體驗呢?

同屏渲染

在有了上面的思考后,我們就在想,有沒有一個方案在不做改造的前提下,在用戶點擊后,立即開始數據的并行加載,同時把下個頁面動態的加載進來,選擇性的保留上個頁面的一些內容(例如正在加載中的數據, jsonp , framework 層的對象等)而隔絕其他部分的干擾。

于是針對我們的場景產出了一個同屏渲染的方案:LightHub,所謂同屏渲染,即渲染過程中頁面不需要被卸載,所有的渲染行為都在一個上下文中發生。

??

??

 

這里我們需要幾個東西:

  • 能直接附著到現有頁面上的沙箱,用于把頁面還原到初始狀態(同時允許保留部分共享的部分)
  • 過渡動畫
  • API 并行加載
  • 按照瀏覽器行為渲染 HTML
  • 按照瀏覽器行為觸發事件

??

??

 

沙箱

我們需要一個低成本把頁面還原會初始狀態、并且允許保留部分對象的沙箱機制,而且最好這個機制是可以直接低成本部署到現有頁面上的。其實這里的訴求和微前端碰到的問題類似,我們受 qiankun 的沙箱機制啟發,只需要在頁面的 中插入一小段內聯 JS 記錄:

  • window 上的全局變量
  • window/document 的 eventListener
  • 定時器:setInterval/setTimeout/requestAnimationFrame/requestIdleCallback
  • MutationObserver

在我們需要時我們只需要清空頁面的 DOM,還原變化的全局變量(這里和 qiankun 一樣采用的淺拷貝),eventListener,定時器和 MutationObserver,就能把頁面還原到初始狀態。

同時,記錄的狀態也能封存到一個對象中,當用戶從下個頁面 back 到上個頁面時,我們可以直接把狀態還原到頁面上。

這里就需要在清空頁面狀態時選擇性的保留一些需要保留的對象:例如公共的 Framework,JSONP 請求的標簽等。

過渡動畫

這一點其實就沒有多復雜了,在頁面不需要被卸載和重新加載后,我們可以在用戶點擊后立即展示一個動畫。目前采用的只是一個簡單的從右側 slide-in 的動畫。

需要注意的是,由于在繪制動畫的過程中我們往往正在執行下個頁面的邏輯,我們需要注意使用 GPU 來繪制動畫,從而確保動畫不會被 JS 執行阻塞。這一點對于低端機尤為關鍵。

API 并行加載

其實在有了上面的沙箱機制后,API 的并行加載就不是難事了,需要注意的是我們需要保護 API 并行加載本身的過程中產生的狀態(例如 setTimeout ),我們需要實現一個 runInSharedContext 確保這其中的定時器不會在頁面切換時被卸載。

runInSharedContext(() => { 
// 這里的 setTimeout 不能是被記錄 & 清除的 setTimeout
setTimeout(() => window.sharedfetchDataPromise = fetch(res));
});

而在下個頁面消費的只需要 window.sharedfetchDataPromise || fetch(url) 就能直接復用并行加載的 API 請求。

在我們的場景下為了讓這個問題更加開發者無感,封裝了一個叫做 redfox 的工具庫,在同一個頁面環境執行多次相同配置的請求會自動復用,不需要開發者手動判斷。

按照瀏覽器行為渲染 HTML

這可能是其中最復雜的部分了,在我們抓到下個頁面的 HTML 后,不能只是簡單的document.innerHTML = nextHTML ,這樣會導致和普通的瀏覽器行為完全不一致,樣式加載會導致閃屏,腳本的執行順序不符合預期等等。

??

??

 

所以我們需要自己實現一個 renderHTML ,將抓到的 HTML 解析后模擬瀏覽器的行為進行渲染。

  • 播放動畫
  • 先通過樣式隱藏 body
  • 異步將 CSS append 到頁面,等到 head 中的 CSS 加載完成并且動畫播放完成后取消 body 的隱藏
  • 把 JS 按照類型和順序 append 到頁面
  • inline & 正常的阻塞后續 DOM 和 js 的 append
  • defer 丟到 defer 隊列中
  • async 異步執行,不阻塞后續
  • 按次序執行 defer 隊列

這個部分的行為比較復雜,需要在較多的場景進行測試,以及有相應的單元測試保障邏輯的正確性。

??

??

 

按瀏覽器行為觸發事件

其實和上面渲染 HTML 相似,在渲染的過程中需要按照瀏覽器的行為觸發相應的事件。

例如上個頁面卸載時依次觸發 beforeunload => pagehide => unload ,在下個頁面加載時先把 readyState 重置,然后按照次序觸發 domInteractive defer 的執行和 DOMContentLoaded。

同樣的,單元測試在這個環節是必須的。

分析

Timeline 分析

從 Chrome 最后的 Timeline 看執行邏輯基本是符合我們預期的,點擊后的瞬間 API 開始加載并且基本上就開始全力執行下個頁面的渲染邏輯。

Framework 層的代碼基本也不需要再重復執行。

??

??

 

內存壓力

對于這種不卸載頁面的方案來說最容易引起擔憂的可能就是內存泄露問題,其實按照上面的沙箱機制,只要我們確保 DOM、全局變量、定時器、時間監聽等能夠被正確清除,與之相關的閉包等就不會賴在內存中不走。

從我們本地多次頻繁點擊切換頁面的反應看,內存隨著頁面的切換返回也會一次次回到初始狀態,從理論上不存在直接導致內存泄露的缺陷。

??

??

 

然而,由于我們允許在頁面間保留一部分的公共區域(上面稱之為 Service Layer),另外沙箱本身是一個約定沙箱而非安全沙箱(例如往 Element.prototype.xxx 屬性寫東西就無法被攔截),對于一些不規范的寫法仍然存在內存泄露的風險。

這一點可能需要和 Native 端類似的內存壓力監控等方式來長期觀察。

分階段打點

由于整個 HTML 渲染過程都是我們自己實現的,所以整個渲染的各個階段可以自己打點記錄一些時間,下面就是一個例子:API 從 JS 請求到拿到耗時 124ms ,而實際上整個取數據(提前并行取的)花了 350ms 。每一個 script 開始執行和執行耗時也可以通過這種方式打上來。

??

??

 

這也可以為我們的頁面優化提供一些指導,例如 JS 的執行時間是不是過晚,某段 JS 的執行時間是不是過長。

效果

最終的對比效果如下,左為同屏渲染,右為正常跳轉,從線上的數據看性能提升大約從 2.8s => 1.8s 。

??

??

 

除了異步渲染的頁面外,我們針對一些原先是 SSR 的頁面也做了非常低成本的接入(不需要改造頁面,但是享受到的受益相對也更有限)。

??

??

 

但僅僅是上面這種跳轉體驗和返回體驗的改善,就讓我們的 Just For U 模塊的曝光屏數有穩定 3% 的增長。

總結

總結一下:

  • 類似 SPA 體驗的客戶端渲染可以讓 Web 的體驗更接近 Native。
  • 同屏渲染是一種讓網站低成本漸進式實現 Native 化體驗的方式。
  • 更加沉浸的體驗確實會讓用戶有意愿進行更多地瀏覽。

局限

上面的方案仍然存在一些局限性,例如前面提到的需要開發者防范內存泄露的問題,同時因為 History API 的限制,頁面必須是同域的,否則跳轉的 URL 無法滿足預期。

未來

關注 Chrome 動態的同學也會了解到 Chrome 最近也退出了一個新的提案:Portal API,就是旨在解決我們上面提到的 Web 體驗割裂的問題。

能夠提供一個類似 iframe 的沙箱,以較低的成本實現頁面間的跳轉過渡等。在未來 Protal 普及后(至少 Chrome 發布, Safari 跟進后),我們就可以在新版本的瀏覽器中拋棄現在使用 JS 實現的沙箱機制,使用更加安全(且炫酷)的 Portal API 來實現同屏渲染。

在 Protal API 的支持下,我們也可以克服無法跨域的問題,按照目前的草案,Portal 是支持跨域跳轉的。

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2013-09-25 17:31:08

Storwize V5虛擬化存儲

2020-06-18 09:40:13

智慧城市數據存儲基礎架構

2013-11-28 09:21:19

2023-02-21 10:32:56

ChatGPT人工智能

2024-09-11 17:33:56

2009-03-19 10:00:06

2023-12-07 12:38:09

架構低成本開發

2011-08-06 23:03:01

京瓷復合一體機

2010-06-22 16:04:53

2024-08-21 13:22:17

邊緣計算云平臺

2011-04-11 14:56:04

2025-02-26 08:02:40

2011-11-28 13:53:03

2021-12-21 23:21:16

DDOS防御安全

2024-10-25 10:00:00

云服務計算

2012-10-18 19:25:21

佳能

2009-05-25 10:18:20

2009-07-06 14:03:01

高性能Web應用緩存

2012-02-13 09:03:04

Web

2022-06-30 11:03:27

DDoS攻擊WAF
點贊
收藏

51CTO技術棧公眾號

亚洲精品国偷自产在线99热| 亚洲免费观看高清完整版在线| 欧美一区二区三区四区在线| 高清国产在线观看| 麻豆国产一区| 黄色成人av在线| 日韩在线导航| 精品久久久中文字幕人妻| 亚洲黄色天堂| 正在播放亚洲1区| 亚洲AV无码久久精品国产一区| 超碰资源在线| 国产欧美一二三区| 成人欧美一区二区三区黑人免费| 日韩一区二区视频在线| 天天射综合网视频| 日韩精品高清视频| 不卡中文字幕在线观看| 亚洲一级少妇| 亚洲精选在线视频| 日本不卡久久| 韩国av在线免费观看| 青青草国产精品97视觉盛宴| 97久久伊人激情网| 亚洲精品久久久久久国| 免费观看久久av| 日韩美一区二区三区| 久久久精品三级| 国产羞羞视频在线播放| 国产精品高潮久久久久无| 精品一区在线播放| 亚洲av永久纯肉无码精品动漫| 日日摸夜夜添夜夜添国产精品 | 国产成人高清激情视频在线观看 | 亚洲少妇最新在线视频| 欧美日韩成人一区二区三区| 亚洲免费不卡视频| 国产一区日韩二区欧美三区| 国产精品久久电影观看| 亚洲欧美精品一区二区三区| 伊人狠狠色j香婷婷综合| 久久精品国产欧美激情| 日本美女xxx| 夜色77av精品影院| 亚洲高清色综合| 国产免费无码一区二区| 日本一区二区三区电影免费观看| 制服丝袜中文字幕一区| 九九热精品在线播放| 欧美日韩激情电影| 色婷婷精品久久二区二区蜜臂av| 日韩精品―中文字幕| 第一av在线| 亚洲福利视频三区| 免费不卡av在线| 操喷在线视频| 午夜精品久久久久久久久久久 | 亚洲 小说 欧美 激情 另类| 亚洲国产国产| 日韩av网址在线| 久久人人爽人人爽人人片| 欧美1区二区| 亚洲精品久久久久久久久久久久久| 2018国产精品| 女同久久另类99精品国产| 日韩激情第一页| 蜜桃无码一区二区三区| 欧美码中文字幕在线| 一区二区欧美在线| 美国一级黄色录像| 91精品在线观看国产| 久久91亚洲人成电影网站| 免费无遮挡无码永久在线观看视频 | 老司机在线视频二区| 欧美国产精品中文字幕| 一区二区欧美日韩| av在线free| 亚洲va天堂va国产va久| 精品久久久久久无码国产| 性感美女一区二区在线观看| 欧美日韩中文一区| 国产不卡的av| 日韩成人av在线资源| 国产亚洲人成a一在线v站| av在线播放中文字幕| 亚洲欧美综合国产精品一区| 久久久久国色av免费观看性色 | 国产日韩欧美三区| 国产精品99久久久久久久久| 97人妻精品一区二区三区动漫| 国产精一品亚洲二区在线视频| 国内精品一区二区| 午夜老司机在线观看| 亚洲男同1069视频| www.浪潮av.com| 国产成+人+综合+亚洲欧美| 91精品国模一区二区三区| 亚洲精品第二页| 成人在线免费观看91| 欧美高清在线视频观看不卡| 日本a级c片免费看三区| 国产一区福利在线| 精品免费国产| 欧美r级在线| 图片区小说区国产精品视频| 亚洲娇小娇小娇小| 日韩影视高清在线观看| 久久的精品视频| 日本黄色一级视频| 国产69精品久久久久777| 日本福利一区二区三区| 欧美xxxx免费虐| 欧美日韩另类国产亚洲欧美一级| 欧美xxxxx少妇| 91欧美大片| 欧美在线视频在线播放完整版免费观看| 91精品国产乱码久久久| 91丨porny丨蝌蚪视频| 日本高清视频免费在线观看| 黄色日韩网站| 日韩精品在线观看网站| 久久免费播放视频| 激情六月婷婷久久| 午夜精品美女久久久久av福利| 欧美aa在线| 亚洲爱爱爱爱爱| 免费又黄又爽又色的视频| 久久精品二区亚洲w码| 欧美日韩精品免费在线观看视频| 羞羞视频在线免费国产| 欧美喷水一区二区| 手机看片福利视频| 蜜桃视频一区| 精品久久精品久久| 波多野结衣久久| 日韩欧美色综合网站| 亚洲综合久久av一区二区三区| 视频在线观看一区| 蜜桃999成人看片在线观看| 97超碰免费在线| 欧美videofree性高清杂交| 一级片一级片一级片| 久久99国产精品麻豆| 日韩欧美视频一区二区| 黑人精品一区| 日韩国产中文字幕| 天天干天天干天天干天天| av欧美精品.com| 久久成人福利视频| 精品深夜福利视频| 国内精品久久久久久| 亚洲第一页视频| 亚洲在线成人精品| 国产一级免费片| 亚洲精选成人| 久久久久综合一区二区三区| 日韩脚交footjobhd| 日韩av网站大全| 青青草免费观看视频| 久久综合99re88久久爱| 天天影视综合色| 成人免费a**址| 国产日产久久高清欧美一区| 精品孕妇一区二区三区| 欧美一区二区日韩一区二区| 麻豆精品一区二区三区视频| 国产不卡免费视频| 波多野结衣综合网| 一区二区三区韩国免费中文网站| 日本高清不卡的在线| 国产小视频在线| 欧美日韩免费不卡视频一区二区三区| 国产亚洲精品久久久久久豆腐| 国产一区二区在线影院| 2019日韩中文字幕mv| 亚洲另类av| 国产精品视频午夜| 亚洲妇熟xxxx妇色黄| 亚洲第一精品福利| 日本视频www色| 亚洲欧美日韩国产另类专区| 亚洲成a人片在线www| 美女网站久久| 欧美三级午夜理伦三级老人| 久久超级碰碰| 国产精品久久久久久中文字| 久操视频在线免费播放| 亚洲第一av网| 波多野结衣大片| 一区二区三区中文字幕在线观看| yy1111111| 老色鬼精品视频在线观看播放| 国产一区二区三区播放| 亚洲免费福利一区| 成人天堂噜噜噜| 日韩激情电影| 麻豆成人在线看| 男人的天堂在线视频| 91精品国产福利| 国产中文字幕视频| 亚洲乱码国产乱码精品精可以看| a级在线观看视频| 国产精品影音先锋| 国产成人综合一区| 亚洲午夜电影| 亚洲一二三区精品| 外国成人在线视频| 99蜜桃在线观看免费视频网站| 日韩电影网站| 久久久久久久久爱| 麻豆电影在线播放| 国产亚洲人成网站在线观看| 三级小视频在线观看| 这里只有精品免费| 中文字幕在线看人| 亚洲一区二区三区自拍| 日韩在线一卡二卡| 国产午夜亚洲精品理论片色戒| 欧美性生交xxxxx| 国产在线精品免费av| 午夜欧美福利视频| 国产欧美高清| 九九热只有这里有精品| 91青青国产在线观看精品| 久久精品国产理论片免费 | 国产一区再线| 欧美成人精品午夜一区二区| 国产精品中文字幕在线| 免费亚洲电影| 91国在线精品国内播放| 免费在线国产视频| 欧美成人午夜激情在线| 色三级在线观看| 一本色道久久88精品综合| 免费一级在线观看播放网址| 亚洲国产精品va在看黑人| 亚洲精品国偷拍自产在线观看蜜桃| 欧美片网站yy| 96亚洲精品久久久蜜桃| 色哟哟亚洲精品| 国产嫩bbwbbw高潮| 欧美性xxxxx极品| 久久久久久久黄色片| 午夜视频一区二区三区| 国产污视频在线观看| 亚洲一卡二卡三卡四卡无卡久久| 一区视频免费观看| 亚洲欧美激情一区二区| 日本一级二级视频| 一区二区高清视频在线观看| 欧美国产日韩综合| 亚洲欧美日韩精品久久久久| 国产精品视频一区二区三 | 国产麻豆日韩欧美久久| 在线视频观看91| 国产专区欧美精品| 日韩久久久久久久久久久| 国产二区国产一区在线观看| 国偷自产av一区二区三区麻豆| 高清av一区二区| 亚洲第九十七页| 久久久www成人免费毛片麻豆 | 亚洲黄色小视频在线观看| 欧美96一区二区免费视频| 艹b视频在线观看| 黑人巨大精品欧美一区| 欧美大片久久久| 国产成人福利片| 亚洲精品中文字幕在线播放| 久久天天做天天爱综合色| 精品无人区无码乱码毛片国产| 亚洲国产成人自拍| 久久国产美女视频| 亚洲国产精品影院| 亚洲黄网在线观看| 911精品产国品一二三产区 | 亚洲欧美日韩精品| 四虎久久免费| 午夜精品久久久久久久白皮肤| 亚洲精品国产精品国产| 国产精品天天狠天天看| 欧美视频三区| 看高清中日韩色视频| 超碰成人久久| 中文字幕日韩精品无码内射| 噜噜噜在线观看免费视频日韩| 九九精品久久久| 不卡的av电影在线观看| 黄色片在线观看免费| 亚洲精品视频一区二区| 亚洲另类在线观看| 3atv一区二区三区| 欧美精品a∨在线观看不卡| 日韩视频免费大全中文字幕| 国产在线精彩视频| 成人xxxxx| 日韩最新在线| 亚洲精品天堂成人片av在线播放 | 韩国视频理论视频久久| 日本精品另类| 国产精品视频免费一区二区三区 | 亚洲人成电影网| 黄色一级片在线观看| 欧美亚洲另类视频| 欧美日本三级| 无码免费一区二区三区免费播放| 国产精品mv在线观看| 视色视频在线观看| 91欧美激情一区二区三区成人| 欧美风情第一页| 色偷偷久久一区二区三区| 精品国产99久久久久久宅男i| 精品偷拍各种wc美女嘘嘘| 91香蕉在线观看| 国产精品天天狠天天看| 亚洲成aⅴ人片久久青草影院| 欧美一级爱爱视频| 免费人成精品欧美精品| 亚洲天堂网一区二区| 夜夜夜精品看看| 96亚洲精品久久久蜜桃| 色爱av美腿丝袜综合粉嫩av| 欧美色网一区| 精品综合在线| 在线日韩电影| 四虎精品一区二区| 亚洲欧美另类小说| 国产有码在线观看| 中文字幕在线看视频国产欧美在线看完整 | 精品视频在线播放一区二区三区| 欧美日韩综合精品| 国产日韩1区| 日韩精品视频一区二区| 亚洲精品一二三四区| 国产精品久久影视| 色狠狠av一区二区三区香蕉蜜桃| 欧美成人ⅴideosxxxxx| 精品日产一区2区三区黄免费| 欧美日韩国产高清| 欧美人与性动交α欧美精品| 中文字幕综合网| 一卡二卡三卡在线观看| 中文字幕亚洲情99在线| 韩日一区二区| 亚洲草草视频| 美女视频一区在线观看| 国产一级淫片久久久片a级| 欧美系列日韩一区| av中文字幕在线| 国产精品一区二区三区久久| 成人直播大秀| 99sesese| 亚洲人午夜精品天堂一二香蕉| 国产一区二区在线不卡| 日韩中文字幕在线看| 视频91a欧美| 国产日产欧美一区二区| 国产福利精品一区| 日韩精品久久久久久久| 亚洲国产精品字幕| 中文字幕在线官网| 色婷婷精品国产一区二区三区| 日本欧美加勒比视频| 四虎永久免费地址| 日韩亚洲欧美高清| 极品视频在线| 色阁综合av| 国内精品伊人久久久久影院对白| 久久免费视频99| 精品视频久久久久久| 欧美97人人模人人爽人人喊视频| 强伦女教师2:伦理在线观看| 国产aⅴ精品一区二区三区色成熟| 久久9999久久免费精品国产| 亚洲欧洲xxxx| 国产高清视频一区二区| 日韩成人三级视频| 久久综合成人精品亚洲另类欧美| 亚洲天堂avav| 欧美精品www| 国产日产精品_国产精品毛片| 中文字幕线观看| 一区二区三区四区激情| 视频午夜在线| 成人写真福利网| 99精品免费网| 少妇高潮惨叫久久久久| 精品国产伦一区二区三区观看体验| 在线视频超级| 精品少妇人妻av一区二区| 高清久久久久久| 波多野结衣毛片| 久久综合久久八八| 丝袜连裤袜欧美激情日韩| 一级淫片在线观看| 欧美日韩亚洲国产一区| 国产日产一区二区| 裸体丰满少妇做受久久99精品| 狠狠色综合日日| 日韩三级一区二区|