日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5首页加载慢_UIViewController 预加载方案浅谈

發布時間:2025/4/16 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5首页加载慢_UIViewController 预加载方案浅谈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 |?hite,目前在網易嚴選iOS 組,主要工作內容 webview 相關,業余時間會寫一些胡思亂想產品策劃稿,各類游戲云玩家。

一. 引子

預加載作為常規性能優化手段,在所有性能敏感的場景都有使用。不同的場景會有不同的方案。舉個例子,網易郵箱簡約郵里,收件箱列表使用了數據預加載,首頁加載完畢后會加載后一頁的分頁數據,在用戶繼續翻頁時,能極大提升響應速度;在微信公眾號列表,不僅預加載了多個分頁數據,還加載了某個公眾文章的文字部分,所以當列表加載完畢之后,你走到了沒有網絡的電梯里,依然可以點擊某個文字,閱讀文字部分,圖片是空白。

在 iOS 常規的優化方案中,預加載也是極常見的手段,多見于:預加載圖片、配置文件、離線包等業務資源。查閱后知, ASDK 有一套很智能的預加載策略;

在滾動方向(Leading)上 Fetch Data 區域會是非滾動方向(Trailing)的兩倍,ASDK 會根據滾動方向的變化實時改變緩沖區的位置;在向下滾動時,下面的 Fetch Data 區域就是上面的兩倍,向上滾動時,上面的 Fetch Data 區域就是下面的兩倍。

系統層面,iOS 10 里UIKit還為開發者新增了UITableViewDataSourcePrefetching

@protocol?UITableViewDataSourcePrefetching?<NSObject>@required//?indexPaths?are?ordered?ascending?by?geometric?distance?from?the?table?view-?(void)tableView:(UITableView?*)tableView?prefetchRowsAtIndexPaths:(NSArray<NSIndexPath?*>?*)indexPaths;@optional//?indexPaths?that?previously?were?considered?as?candidates?for?pre-fetching,?but?were?not?actually?used;?may?be?a?subset?of?the?previous?call?to?-tableView:prefetchRowsAtIndexPaths:-?(void)tableView:(UITableView?*)tableView?cancelPrefetchingForRowsAtIndexPaths:(NSArray<NSIndexPath?*>?*)indexPaths;@end

等新的協議來提供UITableView\UICollectionView預加載 data 的能力。

但是對于整個 App 的核心組件?UIViewController卻少見預加載的策略。極少數場景是這樣的:整個界面包含多個?UIViewController的層級,除了顯示第一個?UIViewController外 ,預加載其他的?UIViewController。

二. UIViewController 到底能不能預加載?

在和同事解決嚴選 App 內“領取津貼”彈窗慢的問題時,我思考了這個問題,所以查閱了 Developer Documentation, 大概有以下的收獲;

  • 在同一個?navigation stack里不能 push 相同的一個UIViewController,否則會崩潰;而來自不同?navigation stack的?UIViewController是可以被壓入 stack 的,這也是預加載的關鍵。

  • 當某個?UIViewController執行了?viewDidLoad()之后,整個?UIViewController對象已經在內存內。如果我們要使用 VC 時,可以直接從內存里獲取,將會獲得速度提升

  • UIViewController作為?UIWindow和?vc.view中間層,負責事件分發、響應鏈,?UIViewController子元素容器,子元素根據?UIViewController的尺寸 layout

  • UIViewController.view是個懶加載屬性,由?loadView()初始化,在 viewDidLoad 事件開始時,就已經完成

  • UIViewController在被添加到?navigation stack后是否會被渲染,取決于所在的 window 是不是 hidden = NO,和在不在屏幕上沒有關系

  • 答案:可以被預加載,除了本文嘗試的多個navigation stack的方式外, apple 自己在早期推廣 storyboard 和 xib 文件模式開發 iOS 應用時,也抱有相同的意圖

    三. UIViewController 渲染的流程?

    因為 UIKit 沒有開源,我從 Apple Documents 和?Chameleonproject 的重寫源碼里試圖還原真實的?UIViewController在 UIKit 中的渲染邏輯。以下是我根據自己的理解畫的 UIViewController 被添加到 UIWindow 的渲染流程,肯定有錯誤和遺漏,僅供理解本文使用。

    圖例參考 Safari,序號后面的圖形,表示本階段 ViewController 的 view 層級,認清這些事件,可以知道哪個階段做哪些操作是合適的?

    注意:以上為 iOS 12 里的情況,在 iOS 13 里,第 5 序號的 View 比目前 iOS 12 要多兩個 View,UIDropShadowView,UITransitionView。

    四. ViewControllerPreRender

    在整理出上面的流程結論后,編寫了ViewControllerPreRender,雖然不到 100 行,前后卻花了一周,主要是為了解決下面這個 XCode 警告。

    "Unbalanced?calls?to?begin/end?appearance?transitions?for?0xa98e050>"

    幸好通過多次嘗試,最終解決掉。

    代碼很短,全文摘錄,以下以注釋的方式詳細解讀。

    //.h?文件@interface?ViewControllerPreRender?:?NSObject+?(instancetype)defaultRender;-?(void)showRenderedViewController:(Class)viewControllerClass?completion:(void?(^)(UIViewController?*vc))block;@end//.m?文件#import?"ViewControllerPreRender.h"@interface?ViewControllerPreRender?()@property?(nonatomic,?strong)?UIWindow?*windowNO2;/**
    ?已經被渲染過后的?ViewController,池子,在必要時候?purge?掉
    ?*/@property?(nonatomic,?strong)?NSMutableDictionary?*renderedViewControllers;@endstatic?ViewControllerPreRender?*_myRender?=?nil;@implementation?ViewControllerPreRender+?(instancetype)defaultRender{????static?dispatch_once_t?onceToken;????dispatch_once(&onceToken,?^{????????_myRender?=?[ViewControllerPreRender?new];????????_myRender.renderedViewControllers?=?[NSMutableDictionary?dictionaryWithCapacity:3];????????//?增加一個監聽,當內存緊張時,丟棄這些預加載的對象不會造成功能錯誤,????????//?這樣也要求?UIViewController?的?dealloc?都能正確處理資源釋放????????[[NSNotificationCenter?defaultCenter]?addObserver:_myRender?????????????????????????????????????????????????selector:@selector(dealMemoryWarnings:)?????????????????????????????????????????????????????name:UIApplicationDidReceiveMemoryWarningNotification???????????????????????????????????????????????????object:nil];????});????return?_myRender;}/**
    ?內部方法,用來產生可用的?ViewController,如果第一次使用。
    ?直接返回全新創建的對象,同時也預熱一個相同類的對象,供下次使用。
    ?支持預熱多個?ViewController,但是不易過多,容易引起內存緊張
    ?@param?viewControllerClass?UIViewController?子類
    ?@return?UIViewControllerd?實例
    ?*/-?(UIViewController?*)getRendered:(Class)viewControllerClass{????if?(_windowNO2?==?nil)?{????????CGRect?full?=?[UIScreen?mainScreen].bounds;????????//?對于?no2?的尺寸多少為合適。我自己做了下實驗????????//?這里設置的尺寸會影響被緩存的?VC?實例的尺寸。但在預熱好的?VC?被添加到當前工作的?navigation?stack?時,它的?View?的尺寸是正確的和?no2?的尺寸無關。????????//?同樣的,在被添加到?navigation?stack?時,會觸發?viewLayoutMarginsDidChange?事件。????????//?而且對于內存而言,尺寸越小內存占用越少,理論上?(1,1,1,1)?的?no2?有能達到預熱?VC?的效果。????????//?但是有些?view?不是被?presented?或者?pushed,而是作為子?ViewController?的子?view?來渲染界面的。這需要?view?有正確的尺寸。????????//?所以這里預先設置將來真正展示時的尺寸,減少?resize、和作為子?ViewController?使用時出錯,在本?demo?中,默認大部分的尺寸是全屏。????????UIWindow?*no2?=?[[UIWindow?alloc]?initWithFrame:CGRectOffset(full,?CGRectGetWidth(full),?0)];????????UINavigationController?*nav?=?[[UINavigationController?alloc]?initWithRootViewController:[UIViewController?new]];????????no2.rootViewController?=?nav;????????no2.hidden?=?NO;//?必須是顯示的?window,才會觸發預熱?ViewController,隱藏的?window?不可用。但是和是否在屏幕可見沒關系????????no2.windowLevel?=?UIWindowLevelStatusBar?+?14;????????_windowNO2=?no2;????}????NSString?*key?=?NSStringFromClass(viewControllerClass);????UIViewController?*vc?=?[self.renderedViewControllers?objectForKey:key];????if?(vc?==?nil)?{?//?下次使用緩存????????vc?=?[viewControllerClass?new];????????//?解決?Unbalanced?calls?to?begin/end?appearance?transitions?for??關鍵點????????//?1.?使用?UINavigationController??作為?no2?的?rootViewController????????//?2.?如果使用?UIViewController?作為?no2?的?rootViewController,始終有?Unbalanced?calls?的錯誤????????//?雖然是編譯器警告,實際上?Unbalanced?calls??會影響被緩存的?vc,?當它被添加到當前活動的?UINavigation?stack?時,它的生命周期是錯誤的????????//?所以這個警告必須解決。????????UINavigationController?*nav?=?(UINavigationController?*)_windowNO2.rootViewController;????????[nav?pushViewController:vc?animated:NO];????????[self.renderedViewControllers?setObject:vc?forKey:key];????????//????????return?[viewControllerClass?new];????}??else?{?//?本次使用緩存,同時儲備下次????????//?必須是先設置?no2?的新?rootViewController,之后再復用從緩存中拿到的?viewControllerClass。否則會奔潰????????UINavigationController?*nav?=?(UINavigationController?*)_windowNO2.rootViewController;????????[nav?popViewControllerAnimated:NO];????????UIViewController?*fresh?=?[viewControllerClass?new];????????[nav?pushViewController:fresh?animated:NO];????????//?在?setObject?to?renderedViewControllers?字典時,保證被渲染過????????[self.renderedViewControllers?setObject:fresh?forKey:key];????????return?vc;????}}/**
    ?主方法。傳入一個?UIViewController?的?class?對象,在調用的?block?中同步的返回一個預先被渲染的?ViewController
    ?@param?viewControllerClass??必須是?UIViewController?的?Class?對象
    ?@param?block?業務邏輯回調
    ?*/-?(void)showRenderedViewController:(Class)viewControllerClass?completion:(void?(^)(UIViewController?*vc))block{????//?CATransaction?為了避免一個?push?動畫和另外一個?push?動畫同時進行的問題。????[CATransaction?begin];????UIViewController?*vc1?=?[self?getRendered:viewControllerClass];????//?這里包含一個陷阱——?必須先渲染將要被?cached?的?ViewController,然后再執行真實的?block????//?理想情況,應該是先執行?block,然后執行?cache?ViewController,因為?block?更重要些。暫時沒想到方法????[CATransaction?setCompletionBlock:^{????????block(vc1);????}];????[CATransaction?commit];}-?(void)dealMemoryWarnings:(id)notif{????NSLog(@"release?memory?pressure");????[self.renderedViewControllers?removeAllObjects];}@end

    五. 性能提升如何?

    以 native 體驗中通常體驗最差的 webview 為例, 目標是嚴選商城的 h5 ,http://m.you.163.com,分別以傳統的,每次都新創建?ViewController的方式;第二次之后使用預熱的?ViewController加載嚴選首頁兩種方式測試,保持?ViewController內部邏輯相同,詳見 demo 工程里注釋。

    測試方案:模擬器,每種方式測試時都重啟,各測試了 20 次左右,統計表格如下,navigationStart 作為網絡加載時間的開始標志,以 document.onload 作為頁面加載完畢的標志;

    1) 傳統方式

    2) 使用預加載方式

    從測試數據可見,使用預加載的方式顯著的提升了?navigationStart的性能,443 ms減少到?56 ms,相應的?document.onload事件也提前,2357到?2067。
    相比之下,預加載方式提前 400ms 發送網絡請求(但是完成加載耗時只少 300ms,猜測是 CPU 資源調度問題)。以上數據只作為性能提升參考,對于加載 WebView 的 VC 而言,預初始化 WebView 以及其他元素,可以提高加載 h5 頁面的速度。

    六. 原因探析

    對?ViewControllerPrerender的邏輯分析解釋為什么會有提速,在使用ViewControllerPreRender時,需要特別留意什么地方,以免掉入誤區。

    根據 preRender 的原理,我大概畫了圖例來解釋。

    上半部分,所有階段是線性的;下半部分,可以做到并行,尤其是第三個 VC 的顯示,將異步加載數據也放到并行邏輯了,這對有性能瓶頸的界面優化不失為一種方式

    總結:預加載利用了并行這一傳統性能優化技術,同時對 ViewController 的生命周期也提出更高的要求,譬如:

  • 被預熱的 ViewController,需要劃分職責,在viewDidLoad里搭建框架,,而在另一個單獨的接口如本 demo 里的setUrl用來使用業務數據渲染頁面。

  • 被預加載的 ViewController 的viewDidLoad不宜占用太多主線程資源,避免對當前界面打開產生負面影響。

  • 七. preRender 適宜的場景

    在 App 性能問題中, native 自己的 ViewController性能表現并不是瓶頸,所以目前業界對 UIViewController 的預加載并沒有太多可參考的案例,不過對于某些場景優化還是有指導意義。在本文開始時提到的嚴選商品詳情頁里領取津貼是彈窗,常規情況下彈出是比較慢的,經過討論后,我們決定對津貼彈窗做兩個優化

  • 在彈窗出現時使用縮放動畫,h5 加載也使用 loading

  • 使用預加載彈窗的 ViewController。

  • 從測試數據來看,從點擊到最后加載完畢,大概節省了 300 ms,還需要進一步考慮 h5 的頁面優化。

    題外話,App 作為嚴選用戶體驗的重要載體,App 性能是極其重要一環。我們對彈窗的體驗做了少許優化。

    在嚴選里彈窗有兩種,一種是被動彈窗,比方說從后臺數據返回中,得知有彈窗需要顯示,native 根據全局彈窗排序,決定顯示那個——當后臺數據返回指定的 url 被加載完畢之后,才彈出遮罩,顯示被加載好的 url;如果 url 加載失敗,就不會彈出彈窗。
    而對于用戶主動彈出的彈窗,如用戶在詳情頁點擊 cell,彈出領取津貼,我們分 native 加速(使用預加載)和 h5 加速兩部分。

    另外比較適合 preRender 的地方如,

  • 我的訂單界面,當用戶某個訂單有商家已發貨未收貨時,根據行為統計,用戶大概率會打開第一條已發貨的訂單去查看當前物流(物流數據來自第三方,響應速度沒有保證),所以在進入我的訂單時,可以預先加載一個查看最新未完成訂單的物流的 ViewController。

  • 用戶在詳情頁面,點擊了我好評率,那么大概率,用戶還會打開用戶曬單的視頻和圖片。這時候可以預加載一個視頻播放器和圖片瀏覽器,提供用戶的響應速度等。

  • 對于大部分功能也能而言, prefetch 并不是必選項,還需要根據自身的業務來決定使用可以 prefetch 的思想解決 App 體驗的瓶頸問題,不要隨意使用?ViewControllerPrefetch,增加額外復雜度。

    八. xib 和 storyboard 帶來的啟示

    當我接觸 iOS 開發時,已經到了 iOS 推銷 storyboard 開發方式失敗的時候,大部分可需要持續迭代的 App,其實不適合用 xib 和 storyboard 來開發,它的可視化帶來的好處相比項目協作迭代里遇到的 diff 困難、復用困難、啟動慢等壞處,不值一提。

    時至今日,當我思考預加載方式在?viewDidiLoad里還要多少操作空間時,我發現 xib 和 storyboard 在被蘋果推廣時沒有被提到它預加載的優點,一直沒有引起重視。

    相同的 ViewController 使用的 xib 和 storyboard 文件被 init 為 實例之后,后續相同的ViewController 都會來 copy 被初始化好的 storyboard 來構建界面。開發人員創建完 xib 和 storyboard,需要持久化為文件,使用 initWithCoder:方法實現序列化,打開 xib 和 storyboard 時,先從文件反序列化解析得到 xml 文件,然后用 xml 文件繪制 interface builder。它的底層機制決定了它在開發啟動、App 啟動時會有性能損耗,不過也為我們做了一個例子—— 如何預加載 View 片段乃至 ViewController 本身。以 storyboard 為例,你可以在 storyboard 里做以下操作;

  • 繪制 ViewController 的 view 層次,特別的,會首先限制 storyboard 里繪制的靜態數據

  • 添加 view 之間的約束

  • 轉場(segue)和按鈕動作跳轉

  • 而最終的用戶界面需要等待網絡返回真實數據后重新渲染,在此期間,顯示靜態的等待界面。所以在需要被緩存的?UIViewController需要可以安全的編寫 UI、事件和轉場等邏輯,將動態部分(網絡請求)的發起邏輯寫在轉場結束之后。

    九. 補記

  • Unbalanced calls to begin/end appearance transitions for?

    ,這個警告必須解決,否則會導致被緩存的 ViewController 被添加到活動 stack 時,生命周期紊亂導致一些依賴生命周期執行的邏輯失效,如電商行業里很看重的曝光統計數據不正確

  • Demo 工程里已經有 calc.rb 可以直接將從 console 里拿到的數據實現為報表,方便你測試自己的頁面性能加載提升對比。

  • 參考

    [1]預加載與智能預加載(iOS)https://draveness.me/preload
    [2]iOS性能優化系列篇之“列表流暢度優化” https://juejin.im/post/5b72aaf46fb9a009764bbb6a
    [3]UIWindow 源碼 of Chameleon https://github.com/BigZaphod/Chameleon/blob/master/UIKit/Classes/UIWindow.m
    [4]https://developer.apple.com/documentation/uikit/uiviewcontroller?language=objc https://developer.apple.com/documentation/uikit/uiviewcontroller?language=objc
    [5]Sharing the Same UIViewController as the rootViewController with Two UINavigationControllers https://stackoverflow.com/questions/9710676/sharing-the-same-uiviewcontroller-as-the-rootviewcontroller-with-two-uinavigatio
    [6]Storyboards vs. the old XIB way https://stackoverflow.com/questions/13834999/storyboards-vs-the-old-xib-way
    [7]Unbalanced calls to begin/end appearance transitions for?https://stackoverflow.com/questions/14412890/unbalanced-calls-to-begin-end-appearance-transitions-for-uinavigationcontroller
    [8]ViewControllerPreRender https://github.com/hite/ViewControllerPreRender

    推薦閱讀

    iOS匯編快速入門

    如何評價 SwiftUI?

    從 SwiftUI 談聲明式 UI 與類型系統

    在看就點點吧?

    總結

    以上是生活随笔為你收集整理的5首页加载慢_UIViewController 预加载方案浅谈的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    超碰免费观看 | 啪一啪在线 | 精品国产一区二区三区噜噜噜 | 亚洲日本黄色 | 亚洲黄色网络 | 国产最新视频在线 | 99色在线 | 色99网 | 久久久福利视频 | 日韩精品免费在线播放 | 天天插狠狠干 | 丁香婷婷综合网 | 亚洲一区二区三区91 | 精品久久综合 | av在线h| 久草视频在线播放 | 国产精品视频永久免费播放 | 99九九免费视频 | 日日干天天干 | 成人一级片免费看 | 成人在线视频免费观看 | 狠狠色丁香婷婷综合久小说久 | 精品在线视频播放 | 久草资源在线 | 日韩av成人 | 亚洲精品动漫久久久久 | 中文在线中文资源 | 成人网页在线免费观看 | 99热国产在线 | 国产日本高清 | 国产高清免费在线播放 | 精品国产精品国产偷麻豆 | 久久视频在线视频 | 国产一级淫片免费看 | 亚洲综合丁香 | 欧美激情另类 | 国产精品久久久久av | 欧美日韩一区二区视频在线观看 | 99国产一区二区三精品乱码 | www.久久久精品| 欧美一级片 | 日本精品久久久一区二区三区 | 亚洲福利精品 | 波多野结衣一区二区 | 香蕉视频18 | 日韩久久精品一区二区三区下载 | 成人免费ⅴa | 蜜桃视频在线观看一区 | 麻豆精品视频在线观看免费 | 黄色免费大片 | 国产精品美女免费视频 | 天天操比 | 婷婷综合在线 | 91av在线视频免费观看 | 成人免费在线视频观看 | 91看片淫黄大片一级在线观看 | 久久久男人的天堂 | 国产色妞影院wwwxxx | 狠狠操91 | 免费视频一级片 | 99久久精品国产一区二区三区 | 九九九热精品免费视频观看 | 天堂av官网| 婷婷久久丁香 | 国产91aaa | 97av.com| 最新真实国产在线视频 | 国产精品美女久久久久久久久 | 99中文字幕在线观看 | www成人精品 | 天天爱天天干天天爽 | 精品久久免费 | 亚洲高清网站 | 亚洲精选在线观看 | 日韩aⅴ视频| 亚洲精品一区中文字幕乱码 | 欧美最猛性xxxx | 久久久美女 | 99国产成+人+综合+亚洲 欧美 | 亚洲精品综合一区二区 | 日韩久久精品一区二区 | 99视频+国产日韩欧美 | 国产精品久久久久久久久久不蜜月 | 午夜在线免费观看 | 一区二区欧美在线观看 | 一级黄色a视频 | 中文字幕免费国产精品 | 午夜精品久久久久久 | 免费视频一级片 | 一区二区网| 久久第四色 | 天天夜夜亚洲 | 午夜精品电影一区二区在线 | 西西www4444大胆在线 | 精品久久久久久国产 | 国产乱对白刺激视频在线观看女王 | av在线电影播放 | 日韩视频a | 精品一区av | 久久久久久在线观看 | 成人中文字幕在线 | 92精品国产成人观看免费 | 在线观看mv的中文字幕网站 | 91自拍视频在线 | 日韩丝袜在线观看 | 日本精品久久 | 精品a视频 | 成人一级影视 | 亚洲国产一区在线观看 | 久草干 | 免费看的黄色录像 | 免费在线国产视频 | 国产精品久久久久久久午夜 | 精品国产一区二区三区久久久蜜臀 | 九九久久久 | 精品在线你懂的 | 精品久久久久一区二区国产 | 亚洲乱亚洲乱亚洲 | 99久久婷婷国产综合精品 | 国产精品精品视频 | 九九免费在线视频 | 国产精品久久久久久久久久 | 久久人人爽人人爽人人片av软件 | 96av在线| 91丨九色丨高潮丰满 | 男女日麻批| 999久久久久| 欧美一区中文字幕 | 三上悠亚一区二区在线观看 | 天堂av在线7 | 日韩中文字 | 国产精品久久久久av免费 | 亚洲精品乱码久久久久久 | 天天爱天天色 | 欧美日韩国产色综合一二三四 | 欧美国产高清 | 国产精品久久久久久久久久尿 | 欧美一级视频在线观看 | 国产999| 伊人小视频 | 黄色国产精品 | 天天曰视频 | av成人亚洲 | 激情小说网站亚洲综合网 | h网站免费在线观看 | 久久视频免费看 | 国产精品成人av电影 | 成年美女黄网站色大片免费看 | 午夜精品久久久久久 | 国产精品欧美日韩在线观看 | 成年人黄色免费视频 | 国产男女爽爽爽免费视频 | 久艹视频在线免费观看 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 在线观看成年人 | 免费的国产精品 | 久久久久久久av | 国产一区二区精品久久91 | 久久99视频精品 | 91av大全| 日日夜夜草 | 色偷偷888欧美精品久久久 | 欧美激情视频一二区 | 人人干人人干人人干 | 超碰精品在线 | 精品亚洲成a人在线观看 | 狠狠干2018| 国产午夜在线观看 | 黄网站色| 免费又黄又爽视频 | 69视频国产 | 黄色在线网站噜噜噜 | 国产va饥渴难耐女保洁员在线观看 | 久久精品成人欧美大片古装 | 久久国产精品电影 | 久久久久久久久久久精 | 日韩久久精品一区二区 | 国产精品成人自产拍在线观看 | 手机色在线| 亚洲 欧美变态 另类 综合 | 色偷偷97| 美女啪啪图片 | 丁香五月网久久综合 | 国产免费成人av | 久久99亚洲网美利坚合众国 | 波多野结衣在线播放视频 | 久久黄色免费 | 97热久久免费频精品99 | 日韩黄色软件 | 激情视频二区 | 免费精品视频在线观看 | 久久亚洲私人国产精品 | 曰本免费av | 国产成人99久久亚洲综合精品 | 成人一区二区在线 | 国产精品日韩在线观看 | 久久久久在线 | 日日成人网 | 国产黄色免费电影 | 国产一区二区三精品久久久无广告 | 99久久国产免费,99久久国产免费大片 | 国产成人一二片 | 国产精品白浆视频 | 精品黄色在线 | 天天草天天插 | 人人添人人 | 国产精品正在播放 | 中文在线www | 在线视频18在线视频4k | 亚洲免费av一区二区 | 91精品视频免费在线观看 | 免费av黄色 | 欧美美女视频在线观看 | 免费a级观看 | 国产伦理久久精品久久久久_ | 精品久久影院 | 日韩在线大片 | 欧美日韩久久不卡 | 五月天com | 综合婷婷丁香 | 韩国av免费看 | 狠狠色丁香婷婷综合基地 | 久久夜色精品国产欧美一区麻豆 | 区一区二区三区中文字幕 | 久久久久久黄色 | 九九色视频 | 在线观看视频国产 | 精品国产免费人成在线观看 | 中文字幕视频免费观看 | 伊人www22综合色 | 成人全视频免费观看在线看 | 少妇搡bbbb搡bbb搡aa | 在线观看色网 | av三级av| 婷婷丁香在线 | 日韩免费成人av | 中文字幕刺激在线 | 久久久久国产精品一区 | 91片黄在线观 | 日日干网址 | 亚洲一区久久久 | 日韩在线观看高清 | 久久超碰在线 | 日韩免费三区 | japanesexxxhd奶水 国产一区二区在线免费观看 | 成人av一区二区在线观看 | 日韩草比 | 99精品视频免费看 | 午夜少妇 | 久久久国产影视 | 综合五月| 探花在线观看 | 国产在线高清 | 九九视频网站 | 91天堂素人约啪 | 国产精品18久久久 | 色综合久久久久综合99 | 国产一级在线免费观看 | 亚洲精品免费看 | 五月婷婷亚洲 | 久久综合久久综合久久综合 | 国产99久久久国产精品免费二区 | 91爱爱中文字幕 | 精品视频www| 午夜12点 | 日本久久久久久久久久 | 久久精品首页 | 日韩在线免费高清视频 | 免费视频久久 | 久草视频一区 | 亚洲日本中文字幕在线观看 | 国产精品一级在线 | 97视频免费在线观看 | 日韩系列| 欧美九九九 | 国产91学生粉嫩喷水 | 日韩免费不卡av | 欧美日本国产在线观看 | 中文资源在线观看 | 久久99久久久久 | 亚洲精品自在在线观看 | 日韩精品一区电影 | 久久爱992xxoo | 狠狠色丁香婷婷综合久小说久 | 日韩精品一区二区三区在线视频 | 日韩黄色免费在线观看 | 成人av电影网址 | 一区二区三区在线观看中文字幕 | 国产1级视频| 亚洲国产中文在线观看 | 亚洲一级黄色片 | 狠狠操综合 | 欧美性做爰猛烈叫床潮 | 免费在线观看av不卡 | 五月婷婷丁香网 | 波多野结衣一区二区三区中文字幕 | 国产精品久久久久久高潮 | 久久tv | 国产91免费看 | 爱爱av网 | 天天色天 | 国产在线欧美在线 | 国产精品高清一区二区三区 | 综合亚洲视频 | 天天色天| 国产中文字幕亚洲 | 这里只有精品视频在线观看 | 91丨九色丨高潮 | 国产一区二区在线免费播放 | 色五月色开心色婷婷色丁香 | 色婷婷综合久色 | 久久久综合九色合综国产精品 | 欧美91精品久久久久国产性生爱 | 久久精品黄 | 久久精品免费播放 | 欧美另类sm图片 | 欧亚日韩精品一区二区在线 | 在线免费观看国产黄色 | 婷婷亚洲最大 | se视频网址| 日韩激情精品 | av丝袜在线 | 亚州精品在线视频 | a在线观看国产 | 麻豆视频在线观看 | 丁香婷婷综合色啪 | 97免费视频在线播放 | 成人欧美亚洲 | 国产精品美女久久久久久久 | 日韩高清观看 | 久久精品香蕉视频 | 黄网站色视频 | 18+视频网站链接 | 中文在线免费视频 | 成人久久久久久久久久 | 亚欧日韩成人h片 | 亚洲japanese制服美女 | 久久婷婷精品视频 | 午夜精品一区二区三区在线视频 | 成人av播放 | 欧美aaa视频 | 18网站在线观看 | 丁香免费视频 | 亚洲三级av| 日韩女同一区二区三区在线观看 | 国产精品乱码久久久久久1区2区 | 日韩大陆欧美高清视频区 | 国产 字幕 制服 中文 在线 | 制服丝袜天堂 | 最新国产精品拍自在线播放 | 日韩成人高清在线 | 亚洲另类在线视频 | 日韩av影视 | 天堂av网址 | 911精品美国片911久久久 | 久久视频在线免费观看 | 四虎在线影视 | 中文免费在线观看 | 色婷婷99 | 最新动作电影 | 精品国产乱码久久久久久1区2匹 | 中文字幕在线视频一区二区三区 | 久久婷婷一区二区三区 | 午夜精品视频福利 | 国产精品成人一区二区三区吃奶 | 天天翘av | 91精品视频免费在线观看 | 正在播放亚洲精品 | 久久免费的精品国产v∧ | 中文字幕亚洲精品日韩 | 91大神视频网站 | 成人一级电影在线观看 | 久草在线免费看视频 | 又黄又爽又刺激的视频 | 日韩黄色av网站 | 91综合色| 国产色小视频 | 狠狠躁日日躁狂躁夜夜躁av | 日韩免费中文字幕 | 激情综合一区 | 五月丁婷婷 | 久热免费在线 | 久久av不卡| 国产成人一区三区 | 亚洲婷婷综合色高清在线 | 国产视频精品免费 | 久久热亚洲 | 国产视频一区二区在线播放 | 欧美福利网站 | 六月丁香色婷婷 | 色偷偷888欧美精品久久久 | 久久99深爱久久99精品 | 日韩在线观看视频网站 | 97超碰在线久草超碰在线观看 | 亚洲天堂网在线观看视频 | 亚洲乱码精品久久久久 | 丁香婷婷综合网 | 国产九九九九九 | 欧美精品乱码99久久影院 | 色综合天天综合 | 免费看的黄色 | 日日夜夜精品视频天天综合网 | 69久久99精品久久久久婷婷 | 成年人免费看片 | 日本久久电影 | 国产成人精品久久亚洲高清不卡 | 日韩婷婷| 在线视频18在线视频4k | 中文字幕无吗 | 色综合久久综合网 | 亚洲无人区小视频 | 五月丁香| 东方av在 | 欧美精品在线观看免费 | 97视频免费在线观看 | 久久精品国产一区二区电影 | 精品视频在线免费 | 黄色小说免费在线观看 | 麻豆成人网 | 日韩精品一区二区三区三炮视频 | 国产超碰在线观看 | 日韩a在线看 | 国产亚洲成人网 | 欧美另类高清 | 一级性av| 成年人免费电影 | 91精品免费在线观看 | 精品xxx | 久久天天躁狠狠躁亚洲综合公司 | 国产小视频你懂的 | 偷拍久久久| 午夜美女wwww | 久草免费在线视频观看 | 成人午夜电影在线 | 中文字幕国产视频 | 激情五月五月婷婷 | 91精品国产99久久久久久久 | av高清一区二区三区 | 久久久久国产精品免费网站 | 精品久久久久久综合日本 | 人人干人人艹 | 婷婷丁香激情综合 | 国产精品久免费的黄网站 | 久爱精品在线 | 超碰大片 | 91在线播| 国产中文欧美日韩在线 | 色综合久久五月天 | 久久免费视频在线观看 | 国产麻豆视频免费观看 | 日韩欧美电影网 | 九九视频免费在线观看 | 国产在线视频在线观看 | 久久久黄色av | 国产精品久久久久久久久费观看 | 天天爽综合网 | 国产精品久久99综合免费观看尤物 | 久久99国产精品自在自在app | 久久久久久久久艹 | 99免费在线观看视频 | 亚洲女人天堂成人av在线 | 国产亚洲精品美女 | 久久69精品久久久久久久电影好 | 欧美一级大片在线观看 | 中文在线免费观看 | 亚洲视频 中文字幕 | 69国产精品视频免费观看 | 91九色porn在线资源 | 欧美日韩视频网站 | 亚洲精品国产精品乱码在线观看 | 免费国产在线观看 | 亚洲视频精品在线 | 久久久久久久综合色一本 | 成人av免费播放 | 久久国产一区二区三区 | 国产亚洲精品日韩在线tv黄 | 国产日韩在线播放 | 久久久精品99 | 成人动漫视频在线 | 2018好看的中文在线观看 | 在线播放日韩 | 欧美性生交大片免网 | 欧美日韩中文国产 | 亚洲 欧美 成人 | 久久电影网站中文字幕 | 香蕉影院在线观看 | 97色婷婷成人综合在线观看 | 最近能播放的中文字幕 | 日韩久久精品一区二区 | 久久久久久久久久网站 | 亚洲免费在线观看视频 | 中文字幕永久 | 美女视频a美女大全免费下载蜜臀 | 午夜久久美女 | 91在线色 | 色婷婷激情网 | 亚洲精品66 | 91完整版观看 | 久精品视频免费观看2 | 激情文学丁香 | 色在线最新 | 久久躁日日躁aaaaxxxx | www免费黄色| 在线网站黄 | 69夜色精品国产69乱 | 免费高清看电视网站 | 国产黄在线免费观看 | 国产成人av免费在线观看 | 三级a毛片 | 欧美在线不卡一区 | 国产一级片免费播放 | 亚洲精品午夜久久久久久久 | 亚洲精品影视在线观看 | 麻豆一二三精选视频 | 成人黄色毛片 | 精品久久久影院 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 最近日本韩国中文字幕 | 伊色综合久久之综合久久 | 亚洲激情一区二区三区 | 99视频精品全国免费 | av电影不卡在线 | 黄色软件大全网站 | 日本久久中文字幕 | 国产拍揄自揄精品视频麻豆 | 国产亚洲永久域名 | 久久久国产精品网站 | 97电影网手机版 | 九九热在线观看 | 日本黄色免费在线 | 在线观看色网 | 天堂av影院 | 狠狠操91 | 美女福利视频网 | 三级黄色欧美 | 一级片黄色片网站 | 欧美巨大荫蒂茸毛毛人妖 | 色丁香久久 | 国产在线观看免费观看 | 久久久久久久久久国产精品 | 又黄又爽又刺激视频 | 国产在线1区 | 国产精品去看片 | 成年人免费看片网站 | 国产欧美在线一区 | 97精品国产97久久久久久 | 99久免费精品视频在线观看 | 日韩欧美视频 | 久久久黄色 | 18做爰免费视频网站 | 欧美性成人 | 国产精品久久久久久久久久99 | 欧美一区在线观看视频 | 四虎影视国产精品免费久久 | 91天天操 | 一区二区三区四区五区在线 | 色91av| 国产精品国产三级国产不产一地 | 正在播放国产91 | av官网在线 | 韩国视频一区二区三区 | 国产va精品免费观看 | 欧美精品久久久久久久久老牛影院 | 免费黄色av电影 | 国产在线 一区二区三区 | 久一在线 | 99久久精品日本一区二区免费 | www.亚洲视频.com | 日韩中午字幕 | 伊人久久电影网 | 国产成人黄色av | 99久热在线精品 | 国产精品手机视频 | 人九九精品| 国产精品入口麻豆 | 欧美日韩啪啪 | 开心激情婷婷 | 亚洲黄色片在线 | 福利网址在线观看 | 精品国产一区二区三区在线观看 | 久久99国产精品二区护士 | 四虎成人精品在永久免费 | 亚洲aaa毛片 | 手机av网站| 正在播放国产精品 | 日韩欧美精品免费 | 在线视频观看成人 | 欧美激情综合五月色丁香小说 | 亚洲精品久久视频 | 在线导航av | 国产手机在线观看视频 | 手机av看片 | 国产在线不卡 | 五月婷婷视频在线 | 美女视频免费精品 | 精品国产精品一区二区夜夜嗨 | 午夜a区| 日日射天天射 | 日日摸日日添夜夜爽97 | 天天色天天骑天天射 | 精品在线一区二区 | 日日草视频| 中文字幕在线观看不卡 | 精品国产一区二 | 视频在线99re | 亚洲国产高清在线 | 亚洲欧美日韩国产一区二区三区 | 国产精品成人久久久久久久 | 麻豆影视在线播放 | 亚洲 精品在线视频 | 97免费公开视频 | 五月婷综合 | 国产免费黄色 | 国内揄拍国产精品 | 国产不卡免费 | 免费性网站 | 国产精品中文字幕在线观看 | 亚洲日本三级 | 国产不卡免费 | 久久久资源 | 免费看片网站91 | 久久一区二区三区日韩 | 国产成人黄色在线 | a电影在线观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 久久久久久国产精品亚洲78 | 国产午夜精品久久 | 国产精品久久久久影院 | 91喷水 | 日韩字幕 | 国产精品对白一区二区三区 | 99re中文字幕 | 成人一级免费视频 | 91中文在线视频 | 亚洲成人免费在线 | 久久精品综合一区 | 香蕉视频最新网址 | 中文字幕视频观看 | 欧美一区二区三区免费看 | 欧美精品一区在线发布 | 久久久久国产精品www | 色av婷婷 | 欧美粗又大 | 国产精品视频免费看 | 黄色av网站在线观看免费 | 天天爽夜夜爽人人爽曰av | 亚洲乱码国产乱码精品天美传媒 | 久久观看免费视频 | av在线播放免费 | 碰超在线 | 日韩v欧美v日本v亚洲v国产v | 四虎在线视频免费观看 | 日韩免费高清在线观看 | 免费看国产a | 色综合激情久久 | 免费看日韩片 | 超碰个人在线 | 夜夜爽www | 国产精品成人自产拍在线观看 | 三级黄色a| 久久精品日产第一区二区三区乱码 | 中文字幕日韩高清 | 日韩精品视频在线免费观看 | 国产精品资源 | 99精品视频在线观看 | 国产精品毛片一区二区在线看 | 欧美日韩高清 | 九九九热精品免费视频观看网站 | 十八岁以下禁止观看的1000个网站 | 色视频在线免费 | 精品av在线播放 | 国产成人精品免费在线观看 | 在线视频 成人 | 在线播放精品一区二区三区 | 久久99国产精品久久99 | 久久综合五月天婷婷伊人 | 中文视频在线看 | 国产精彩视频一区 | 9色在线视频 | 久久久久久久久毛片精品 | 国产日韩视频在线 | 免费黄色小网站 | 日韩免费电影在线观看 | 亚洲激情在线观看 | 亚洲视频 一区 | 色婷婷福利视频 | 99色精品视频 | 国产精品久久99精品毛片三a | 国产一区二区三区四区在线 | 综合色在线观看 | 国产精品a久久久久 | 欧美一级片在线免费观看 | 国产剧在线观看片 | 日韩高清精品免费观看 | 十八岁以下禁止观看的1000个网站 | 国产五月 | 国内精品免费久久影院 | 日韩乱理| 色综合久久久久综合99 | 国产黄色免费看 | 日韩中文在线字幕 | 丁香久久久 | 国产精品午夜在线 | 丝袜美腿在线 | 国产精品九九九九九 | 日韩欧美在线观看 | av在线播放不卡 | 亚洲欧美国产视频 | 九九久久在线看 | 国产精品免费久久久久 | 一区二区成人国产精品 | 国产日韩欧美在线影视 | 免费在线一区二区三区 | 综合婷婷久久 | 日韩一二三 | 色综合久久久 | 国产一区二区在线视频观看 | 特级西西人体444是什么意思 | 亚洲aaa毛片 | 一区电影| 精品国产乱子伦一区二区 | 玖玖在线免费视频 | 超碰在线天天 | 久久污视频 | 免费视频黄 | 亚洲一区二区三区精品在线观看 | 色射色| 九九热在线观看视频 | 黄色毛片一级片 | 在线观看国产麻豆 | 草久热| 韩国av免费看 | 婷婷视频在线播放 | 国产视频999| 国产永久免费观看 | 亚洲国产日韩一区 | 91视频91蝌蚪 | 国产护士在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美在线视频免费 | 欧美成人精品三级在线观看播放 | 国产精品igao视频网入口 | 好看的国产精品视频 | 精品久久久久亚洲 | 亚洲人在线7777777精品 | 天天做夜夜做 | 97超碰在线视 | 欧美一级片在线观看视频 | 精品免费观看视频 | 国产视频 亚洲视频 | 色婷av | 婷婷在线网站 | 精品一区二区视频 | 欧美国产视频在线 | 在线视频 亚洲 | 91热在线| 日韩mv欧美mv国产精品 | 中文字幕在线免费97 | 国产视频久久久久 | 精品国产一二三四区 | 性色在线视频 | 成人aaa毛片 | 国产在线观看免费观看 | 免费三级黄 | 婷婷综合成人 | 美女在线免费视频 | 国产精品视频全国免费观看 | 美女福利视频网 | 日本精品中文字幕 | 久久黄色美女 | 日韩精品一区二区三区中文字幕 | 中文字幕传媒 | 在线观看免费黄视频 | 欧美精品免费一区二区 | 国产精品99视频 | 精品少妇一区二区三区在线 | 五月天国产 | 国产在线v| 精品一区二区在线免费观看 | 精品一区二区免费在线观看 | 激情开心站 | 最近免费中文字幕mv在线视频3 | 国产精品白虎 | 麻豆mv在线观看 | 久草在线视频在线观看 | 91精品久久久久久久久久入口 | japanesexxxhd奶水| 亚洲精品av在线 | 国产精品成人aaaaa网站 | 久久不卡av| 亚洲人成人天堂h久久 | 久久人人射 | 国产精品福利久久久 | 精品一区二区在线免费观看 | 日韩欧三级 | 国产日韩欧美在线观看视频 | 国产精品高清在线 | 91中文在线 | 婷婷色网址 | 日韩视频免费播放 | 亚洲一级电影在线观看 | 国产不卡精品视频 | 国产精品视频全国免费观看 | 一级一片免费观看 | 日韩av在线不卡 | 色网免费观看 | 91色在线观看视频 | 日本高清中文字幕有码在线 | 日韩91在线 | 国内精品久久天天躁人人爽 | 日韩在线国产精品 | 欧美有色 | 精品欧美乱码久久久久久 | 日日干狠狠操 | 九九免费在线观看视频 | 日韩精品免费一区二区 | 一区二区三区精品在线视频 | 伊人亚洲综合网 | 波多野结衣在线观看一区二区三区 | 国产又粗又猛又爽 | 免费99| 麻豆视屏 | 中文字幕在线播出 | 精品国产一区二区三区久久影院 | 99热官网| www免费在线观看 | 天天射天天射 | www.黄色小说.com | 一区二区三区电影大全 | 欧美激情另类 | 日本中文字幕在线一区 | av成人黄色| 2021av在线 | 天天爱天天色 | 亚洲色五月 | 日韩一区二区免费在线观看 | 999久久久欧美日韩黑人 | 97香蕉久久超级碰碰高清版 | 国产高清av免费在线观看 | 91干干干| 免费视频91蜜桃 | 日韩av影片在线观看 | 亚洲 欧洲 国产 精品 | 日韩国产欧美视频 | av一区二区三区在线 | 日韩在线资源 | 日韩精品一区二区三区免费视频观看 | 成人在线一区二区三区 | 狠狠干激情 | 日韩视频1区 | 97超级碰碰 | 国产传媒一区在线 | 97网| 国产小视频你懂的在线 | 欧美性生交大片免网 | 国产精品永久在线观看 | 亚洲精品视频免费在线观看 | 狠狠操操| 欧美性春潮 | 国产一区网址 | 国产色网站 | 中文字幕av在线不卡 | 综合av在线 | 日韩女同av| 婷婷久月 | 一区二区丝袜 | 亚洲精品国产精品国自产观看浪潮 | 日本黄色免费电影网站 | 狠狠色丁香婷婷综合欧美 | 日韩免费一级电影 | 麻豆国产视频 | 美女免费网站 | 中文字幕在线电影 | 青青草国产免费 | 亚洲香蕉在线观看 | 免费在线观看的av网站 | 日韩av不卡在线播放 | 日本精a在线观看 | 97色狠狠 | 九九涩涩av台湾日本热热 | 亚洲 综合 国产 精品 | 美女网站视频免费都是黄 | 久久久999精品视频 国产美女免费观看 | 日日干视频 | 久久久久久久久久福利 | 亚洲精品视频久久 | 天天摸天天操天天爽 | 亚洲午夜精品久久久 | 五月婷婷黄色网 | 欧美a级在线免费观看 | 激情欧美xxxx| 在线草| 色视频网址 | 久久av网 | 成年人视频免费在线播放 | 麻豆视频免费在线播放 | 人人草在线视频 | 国产一区精品在线观看 | 色综合久久88色综合天天人守婷 | 99热九九这里只有精品10 | 中文字幕一区二区三区乱码在线 | 三上悠亚在线免费 | 91av观看| 国产糖心vlog在线观看 | 亚洲最新精品 | 午夜精品久久久 | 最近最新最好看中文视频 | 在线观看亚洲国产 | 成人av教育 | 麻豆国产精品一区二区三区 | 国产不卡精品视频 | 久久午夜精品影院一区 | 伊人久久国产 | 在线黄色观看 | 中文av字幕在线观看 | 国内丰满少妇猛烈精品播放 | 蜜臀av夜夜澡人人爽人人桃色 | 久久人人爽人人爽 | 久久久久免费精品国产小说色大师 | 超碰97公开 | 色妞色视频一区二区三区四区 | 久久精品5 | 成人av在线观 | 91日本在线播放 | 精品美女久久久久久免费 | 丝袜美腿在线视频 | 99精品欧美一区二区三区 | 在线看国产日韩 | 一区二区三区四区免费视频 | 色婷婷综合久久久久中文字幕1 | 久久国产精品免费一区二区三区 | 麻豆91在线| 天天躁天天狠天天透 | 免费高清在线观看成人 | 国产日韩精品一区二区 | 日本黄色免费播放 | 黄色在线观看www | 免费观看十分钟 | 免费看黄的视频 | 91在线播| 91在线操| avav99| 国产精品乱码久久久久久1区2区 | 国产一区二区电影在线观看 | 免费福利片2019潦草影视午夜 | 国产一级免费观看视频 | 亚洲黄色免费网站 | 探花视频在线版播放免费观看 | 国产精品男女 | 婷婷激情站 | 超碰个人在线 | 天天搞天天干天天色 | 久久久免费精品国产一区二区 | 中文字幕第一页av | 久久蜜臀av | 国产二区视频在线观看 | 亚洲黄色一级视频 | 久久免费福利视频 | 日韩av不卡在线播放 | 四虎www com| 日韩欧美69 | 亚洲一区二区精品视频 | 久久久黄视频 | 精品一区二区三区香蕉蜜桃 | 麻豆国产精品一区二区三区 | 日韩av进入 | 亚洲天天综合 | 免费网站在线观看成人 | 久草免费电影 | 国产精品久久久久久久久久白浆 | 麻豆视频免费在线播放 | 岛国av在线不卡 | 久久深夜| 91新人在线观看 | 伊色综合久久之综合久久 | 99精品免费久久久久久久久 | 亚洲视频一区二区三区在线观看 | 97干com| 五月色婷 | 精品国产乱码久久久久久三级人 | 欧美日本一二三 | 国产999视频在线观看 | 中文字幕一区二区三区在线视频 | 欧美精品一区二区三区一线天视频 | 成人国产一区 | 日韩视频精品在线 | www.xxx.性狂虐| 最近中文字幕高清字幕在线视频 | 午夜精品福利在线 | 天天搞夜夜骑 | avav片| 视频一区在线免费观看 | 成人久久久久久久久久 | 欧美一级日韩免费不卡 | 国内久久视频 | 久草免费在线视频观看 | 特级xxxxx欧美 | 中文字幕资源在线 |