麻豆视频国产_男人天堂电影_午夜影院在线_一级黄色毛片_精品无码久久久久久国产_国产高清自拍

Tango 低代碼引擎沙箱實現解析

Tango 低代碼引擎沙箱實現解析

Tango 基本介紹

Tango 是一個用于快速構建低代碼平臺的低代碼設計器框架,并以源代碼為中心,執行和渲染前端視圖,并為用戶提供低代碼可視化搭建能力,用戶的搭建操作會轉為對源代碼的修改。借助于 Tango 構建的低代碼工具或平臺,可以實現 源碼進,源碼出的效果,無縫與企業內部現有的研發體系進行集成。

開源進展

目前 Tango 設計器引擎部分已經開源,正在積極推進中,可以通過如下的信息了解到我們的最新進展:

  • 開源代碼庫:https://github.com/NetEase/tango
  • 文檔地址:https://netease.github.io/tango-site/
  • 社區討論組:https://github.com/NetEase/tango/discussions

此外,Tango 的文檔現已全面更新,歡迎瀏覽。

Tango 低代碼引擎沙箱實現解析

歡迎大家加入到我們的社區中來,一起參與到 Tango 低代碼引擎的開源建設中。有任何問題都可以通過 Github Issues 反饋給我們,我們會及時跟進處理。

往期系列文章

  • 網易云音樂 RN 低代碼體系建設思考與實踐
  • 手把手帶你走進Babel的編譯世界
  • 網易云音樂低代碼體系建設思考與實踐
  • 云音樂低代碼:基于 CodeSandbox 的沙箱性能優化
  • 云音樂低代碼 ChatGPT 實踐方案與思考
  • 網易云音樂 Tango 低代碼引擎實現揭秘
  • 網易云音樂 Tango 低代碼引擎正式開源
  • 低代碼在云音樂數據業務中的落地實踐與思考

為什么 Tango 需要沙箱

傳統的基于 DSL 的低代碼方案通常需要實現一套對應的 DSL 語法與渲染器,在渲染器內渲染給定的組件、綁定事件等。與此不同,Tango 是基于 AST 驅動的面向源碼的低代碼方案。相較于 DSL 方案,Tango 的寫法更加靈活,但也帶來了支持源代碼實時運行的挑戰。此外,為了與團隊內已有的物料集成,Tango 支持添加業務組件,因此設計器還需要考慮三方依賴的加載與運行。因此,Tango 需要一個獨立的沙箱來運行源碼,提供可以媲美本地開發的代碼運行時。

在初期,Tango 曾調研了幾種方案,如基于 Sea.js 這類 AMD 加載方案。然而,這類方案的問題在于依賴比較固定,需要將依賴預先構建出符合規范的產物(如 UMD 資源),因此不能靈活地添加依賴。至于 SystemJS 和 ViteSandbox 這類 ESM 方案,由于 Tango 期望支持直接使用已有的組件物料,而它們的產物主要以 CommonJS 為主,缺少 ESM 產物。此外,我們后續對沙箱的改造優化大幅減少了沙箱初始化的時間,因此沒有采用該方案。

Tango 目前采用的沙箱方案是基于 CodeSandbox 提供的沙箱能力實現的。它的優勢在于提供了更完整、接近本地開發的運行時環境,支持直接拉取 npm 包并運行。它借助 Babel 將 ESM 和瀏覽器不支持的新語法轉譯為 CommonJS,模擬了 CommonJS 的運行環境,實現了源碼在瀏覽器上直接運行。這樣即便依賴沒有提供可供瀏覽器使用的預構建產物,也能在沙箱內實時轉譯并運行。此外,CodeSandbox 的沙箱運行在一個 iframe 內,可以隔離代碼的運行時環境,避免污染設計器的全局變量

Tango 沙箱的基本結構

CodeSandbox 是一個在線運行 JavaScript 代碼的平臺,它的沙箱借助 Babel 與 Web Worker 等能力,在瀏覽器上實時轉譯與運行代碼。你可以把它的沙箱能力想象成一個在瀏覽器上運行的 webpack,比如它的轉譯器 Transpiler 就和 webpack 的 loader 比較接近。。

由于 CodeSandbox 自己實現了各個模板的轉譯規則,整個轉譯流程均由自己把控,因此它整體上會比 webpack 輕量些。例如 CodeSandbox 在初始化依賴時能忽略掉絕大多數的 devDependencies,從而大幅減少項目的依賴初始化時間與轉譯時間。

結合 Tango 后的沙箱可以簡化為三個部分:

Tango 低代碼引擎沙箱實現解析

  • 沙箱前端組件:一個開箱即用的沙箱組件,只需要傳入代碼和配置就可以完成應用的渲染
  • 在線打包器:提供搭建產物的瀏覽器端構建能力,類似于一個瀏覽器版本的 webpack,最終形態是一個獨立的 iframe
  • 沙箱后端服務:對依賴的資源進行預構建,以及提供資源合并等服務,用來加速沙箱內部的構建打包過程

它的工作流程可以簡述如下:

  • 代碼準備:平臺引用沙箱組件,通過 postMessage 將代碼傳遞給沙箱
  • 依賴初始化:沙箱處理傳入的文件,根據 package.jsondependencies 調用 Packager 打包服務獲取依賴
  • 轉譯代碼:解析代碼的依賴關系,將依賴的代碼通過對應的 Transpiler 轉譯
  • 執行代碼:在沙箱中初始化 html 等,然后從代碼的入口文件開始執行轉譯后的代碼
  • 上述執行周期內和執行完成后,沙箱會拋出事件讓平臺感知

Tango 沙箱的工作流程

本部分主要參考了 CodeSandbox 如何工作? 上篇 的部分內容,并在此基礎上進行了修改。如果你對 CodeSandbox 底層的更多細節感興趣,不妨閱讀下這篇文章。

依賴的初始化

如前所述,CodeSandbox 在內部實現了核心的轉譯邏輯(例如 Babel 與 less 轉譯),整個轉譯流程都由自己控制,因此在初始化依賴時可以相對輕量一些,只需獲取 dependencies 里必要的依賴,忽略掉 devDependencies 以及 @types 開頭的只在本地開發時才會用上的依賴。

CodeSandbox 是如何獲取依賴的呢?CodeSandbox 實現了兩套方案,一套是默認的遠程在線打包方案,另一套是從 unpkg/jsdelivr 等 npm 包資源的 CDN 獲取依賴的兜底方案。

CodeSandbox 設計了一個 Serverless 服務 dependency-packager,這個服務負責在線拉取依賴,然后一次性返回包括子依賴在內的所有需要的文件。當服務接收到接口請求后,會解析 URL 中的包名與版本號,并在服務端執行 yarn install 安裝 npm 包,然后從入口文件開始逐一解析依賴的文件以及各個包之間的依賴關系,最后將被依賴的文件一次性返回。由于該服務僅返回被依賴的文件,在減少網絡請求的資源大小的同時,沙箱可以避免轉譯 .d.ts測試用例這樣運行時不需要的文件。

不過由于 packager 返回的文件是從包的入口文件開始計算的被引入的文件,因此在實際使用中,一些未被引入的文件可能也會被項目使用。當項目引入了被排除的資源時,沙箱會在前端請求 unpkg/jsdelivr 作為兜底方案,從而順利完成轉譯。當然,缺點就是如果缺失的文件比較多,實時獲取的方案會多出很多的網絡請求開銷。因此 CodeSandbox 還使用了 Service Worker 作資源緩存,減少二次復訪的網絡請求。

轉譯與構建

當 CodeSandbox 開始轉譯時,會調用 compile() 方法開始轉譯,整個轉譯流程大致如下:

Tango 低代碼引擎沙箱實現解析

傳入沙箱的參數除了代碼外,還需要傳入 template 參數,該參數用于指定沙箱轉譯時需要使用的 Preset。Preset 就像 webpack 的配置文件一樣,內部定義了如何預處理依賴、不同的文件該使用哪些 Transpiler、在代碼執行前做一些其他的操作等。

Preset 初始化好后,沙箱將初始化一個 Manager 實例,這個 Manager 實例會被 compile() 使用,用于控制整個轉譯流程的生命周期。然后,Manager 會按照上一節提到的方式初始化項目的依賴。如果傳入的依賴發生了變更,沙箱會重新初始化一個新的 Manager 實例,避免運行時被舊的 Manager 依賴影響。

依賴準備好后,傳入沙箱的代碼會被傳入 Manager,Manager 會將代碼實例化為 TranspiledModule,解析各模塊的依賴關系,計算是否被更新或刪除等。然后沙箱將從代碼的入口模塊開始,根據 Preset 里定義的規則,對每一個模塊遞歸調用指定的 Transpiler 轉譯。這里 Transpiler 就像 webpack 的 loader 一樣,負責將文件轉譯為需要的產物。對于復雜的 Transpiler——例如負責轉譯 JavaScript 的 BabelTranspiler——還會使用 Web Worker 隊列來提升轉譯效率。

當相關的模塊都被轉譯好后,Manager 會進入代碼執行階段。

代碼執行

沙箱的運行時模擬了 CommonJS 所需的環境,如 require、module、exports、global 等方法與變量。當所有需要的模塊都被轉譯好后,Manager 會進入代碼執行階段。代碼執行的核心代碼如下:

const allGlobals: { [key: string]: any } = { require, module, exports, process, global, ...globals,};const allGlobalKeys = Object.keys(allGlobals);const globalsCode = allGlobalKeys.length ? allGlobalKeys.join(', ') : '';const globalsValues = allGlobalKeys.map(k => allGlobals[k]);const newCode = `(function $csb$eval(` globalsCode `){` code `n})`;// @ts-ignore(0, eval)(newCode).apply(allGlobals.global, globalsValues);return module.exports;

沙箱會從入口模塊開始執行,執行時會將代碼封裝為上述的立即執行函數,然后調用 eval() 執行并傳入上述 CommonJS 的方法與變量。若代碼引用了其他文件,執行時調用的 require() 方法會按照相同的邏輯遞歸執行并返回執行后的產物。

經過上述流程后,項目中的代碼就會被轉譯并執行,最終渲染在沙箱里,你就能看到代碼的實際效果了。

沙箱的優化改造

在 Tango 上開發的應用是一個完整的項目,并非像 CodeSandbox 網站上那樣主要用于承載簡單的示例或代碼片段。因此用戶對沙箱自身的構建性能與加載速度有較高的要求,以滿足日常的開發體驗。

關于我們對 CodeSandbox 優化的具體細節,可以參考我們之前的這篇 云音樂低代碼:基于 CodeSandbox 的沙箱性能優化 ,修改后的 CodeSandbox 代碼也可以在 GitHub 上找到。

接入 Tango 沙箱

Tango 低代碼設計器除了需要讓沙箱運行源碼、渲染頁面以外,還需要實現可視化搭建的拖拽能力,因此設計器需要感知到用戶在沙箱內的操作。但是,由于沙箱運行在一個獨立的 iframe 內,并且部署在獨立的域名下,兩者之間是跨域的,因此需要做跨域兼容。通過將設計器平臺與沙箱的 document.domain 均設為相同的父域名,并針對 Chrome 的安全策略 在平臺與沙箱添加 Origin-Agent-Cluster: ?0 的 HTTP 響應頭,就能實現平臺與沙箱的跨域通信。

為了簡化沙箱的使用成本,我們封裝了一個 React 組件 @music163/tango-sandbox 供設計器使用,相關代碼可以在 Tango 的 GitHub 倉庫里找到。它主要分為如下三個部分:

  • IFrameProtocol:負責與沙箱通信。通過監聽 message 事件接收從沙箱傳出的消息,以獲取沙箱主動傳出的生命周期。通過在 iframe 內部調用 postMessage() 方法向沙箱傳遞事件,從而控制沙箱。
  • PreviewManager:負責管理沙箱的基本渲染。其借助上面的 IFrameProtocol 與沙箱通信,當代碼發生變化時,會向沙箱發送 compile 消息,從而觸發沙箱的構建與渲染。
  • Sandbox:用于渲染沙箱的 React 組件。除了掛載沙箱的 iframe 外,還包括了沙箱配置、注冊事件監聽函數、消息傳遞、路由管理等功能。當組件傳入的 props 發生變化時,會相應地更新沙箱代碼、更新 iframe 路由等。

Tango 低代碼引擎通過向 Sandbox 組件傳入 files 來實現代碼的渲染,并傳入 eventHandler 來監聽用戶在沙箱內的拖拽操作,最終實現了設計器的組件拖拽搭建能力。

不過,沙箱獲取依賴的基本能力主要是 CodeSandbox 提供的 packager 與 JSDelivr、unpkg 提供的,如果需要使用團隊內部的私有 registry 就需要將相關服務私有化部署了。限于篇幅就不在此做過多贅述,關于 Tango 沙箱的具體接入文檔,以及上述第三方服務私有化部署需要做的修改,可以參考我們提供的 沙箱接入文檔。

總結

本文簡單介紹了 Tango 低代碼引擎的沙箱能力,并分析了 CodeSandbox 的基本結構和工作流程。通過 CodeSandbox 強大的沙箱能力與優化,Tango 低代碼引擎實現了可視化預覽與搭建能力,為開發者提供了便捷高效的開發體驗。

Tango 開源計劃

目前我們已經完成了 Tango 核心實現的基本代碼庫的開源,包括核心引擎內核、沙箱、設置器、應用框架、物料協議等等,并發布了 RC 版本。在今年,我們將持續推進云音樂低代碼核心能力的開源,包括基本的服務端能力,前端組件庫等,并持續優化和完善開源文檔。并且,隨著其他能力的穩定和時間的成熟,我們還將會持續向社區開源更多的內部實踐。

參考資料

  • CodeSandbox 如何工作? 上篇
  • 云音樂低代碼:基于 CodeSandbox 的沙箱性能優化
  • 搭建一個屬于自己的在線 IDE
  • 網易云音樂 Tango 低代碼引擎實現揭秘

作者:0xcc

來源:微信公眾號:網易云音樂技術團隊

出處:https://mp.weixin.qq.com/s/GqSoZR3bSeuLWiULHt8Zvg

相關新聞

聯系我們
聯系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
主站蜘蛛池模板: 亚洲高清视频在线观看 | 国产大奶视频 | 亚洲超碰av | av网站大全免费 | 亚洲精品一区久久久久久 | 天堂综合网 | 成a人片在线观看 | 精品国产一区二区三区久久久蜜 | 一区二区观看 | 97在线免费观看 | 91在线视频 | 国产精品一区一区 | 无码国模国产在线观看 | 在线亚洲人成电影网站色www | 亚洲精品久久久久久久久久久 | 久久精品免费观看 | 久久久91精品国产一区二区三区 | 免费一二三区 | 成人网av | 亚洲一区二区三区 | 久久这里只有精品首页 | 在线观看欧美日韩视频 | 精品99在线| 免费高清一级毛片 | 久久91 | 韩国精品主播一区二区在线观看 | 国产中文区二幕区2012 | 精品视频在线观看一区二区 | 成人影视网址 | 日日夜夜天天 | 国内自拍视频网 | 一区二区免费播放 | 欧美日韩在线视频一区 | 久久久一区二区三区 | 日韩国产一区二区三区 | 国产成人一区二区三区 | 国产在线综合视频 | 久久精品国产v日韩v亚洲 | 在线a视频 | 日韩欧美一区二区三区视频 | www.成人| 99久久99久久精品国产片果冻 | 久久六月| 亚洲精品一区二区三区在线观看 | 自拍偷拍亚洲视频 | 毛片91 | 国产在线专区 | 国产精品成人一区二区三区夜夜夜 | 久久理论片 | 亚洲精品www | 91视频8mav | 91在线资源| 国产精拍| 黄p在线看 | 国产在线视频网站 | 国产精品一区在线看 | 亚洲精品一区二三区不卡 | 一区二区三区高清不卡 | 婷婷久久综合九色综合绿巨人 | 成人美女免费网站视频 | 国产成人午夜精品影院游乐网 | 亚洲成人第一区 | 国产精选视频 | 国产精品一区二区在线看 | 无码一区二区三区视频 | 久久久天天 | 国产精品久久久久9999赢消 | 成人国产精品视频 | 亚洲精品久久久久久下一站 | 精品久久久久久久久久久院品网 | 国产中文视频 | 欧美高清一区 | 国产精品免费一区二区三区四区 | 一道本视频 | 国产一区二区精品在线观看 | 日韩欧美h | 国产91福利视频 | 久久国产精品久久 | 在线99热| 午夜精品一区二区三区在线观看 | 欧美肉体xxxx肉交高潮 | 欧美午夜一区二区三区免费大片 | 欧洲一级毛片 | 99久久久久国产精品免费 | 国产免费一区二区三区 | 精品网站www | 久久久91精品国产一区二区三区 | 欧美精品区 | 91在线视频免费观看 | 国产草草视频 | 毛片网站大全 | 久久综合一区二区三区 | 精品国产18久久久久久二百 | 国内精品一区二区 | 中文字幕 国产精品 | 欧美日韩另类在线 | 国产成人av在线播放 | www国产成人免费观看视频,深夜成人网 | 久久伊人一区二区 | 久久久www成人免费精品 | 欧美一级二级视频 | 色视频免费在线观看 | 吊视频一区二区三区 | 日韩免费网站 | 一级色视频 | 超碰高清| 欧美一区二 | 亚洲精品国产综合区久久久久久久 | 亚洲精品免费在线观看 | 亚洲激情在线 | 日韩中文字幕一区二区 | 9l蝌蚪porny中文自拍 | 91精品国产综合久久久久久蜜臀 | 一区免费在线观看 | 国产精品91视频 | 国产精品中文字幕在线播放 | 2018狠狠干 | 在线免费黄色 | 国产精品精品视频 | 永久看片| 国产精品久久久久久久久久妞妞 | www视频在线观看 | 999久久久久久久久 国产欧美在线观看 | 精品一区二区三区在线观看 | 日本久久精品一区 | 国产精品亚洲一区二区三区在线 | 日韩日韩 | 成人免费aaa | 日韩福利电影 | 国产一区二区三区免费观看 | 免费成人在线网站 | 国产午夜精品福利 | 久久不卡日韩美女 | 日韩欧美一区二区三区 | 青娱乐国产精品视频 | 男人的天堂视频 | 国产日韩一区二区三免费高清 | 日韩污视频在线观看 | 夜夜操天天干, | 欧美精品v国产精品v日韩精品 | 一区在线视频 | 亚洲毛片在线观看 | 国产精品成人一区二区 | 91精品国产一区二区三区蜜臀 | 日韩av免费看 | 麻豆国产一区二区三区四区 | 国产aaaaav久久久一区二区 | 91国内精品久久 | 久久久精品一区二区 | 亚洲欧美第一页 | www.久久久 | 亚洲精品一区中文字幕乱码 | 免费一区二区三区 | 午夜视频一区二区 | 黄色在线免费 | 日本在线观看视频一区 | 99久久婷婷国产综合精品电影 | 91精品国产综合久久久蜜臀粉嫩 | 国产免费一区二区三区 | 亚洲成人一区二区三区 | 高清视频一区二区三区 | 国产亚洲欧美一区二区 | 精品国产成人 | 很黄很色很爽的视频 | 2019亚洲日韩新视频 | 一色视频| 亚洲在线 | 日本在线一区二区 | 欧美顶级毛片在线播放 | 91九色porny首页最多播放 | 国产一级色 | 一级做a爰 | 精品在线免费视频 | 国外成人在线视频网站 | 精品中文一区 | 亚洲精品毛片一区二区 | 亚洲免费观看视频 | 日本久久精品视频 | 黄色大片免费网址 | 毛片网站在线 | 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩国产在线播放 | 国产精品福利91 | 精品乱子伦一区二区三区 | 午夜久久久 | 狠狠操天天操 | 丝袜久久 | 香蕉av777xxx色综合一区 | 国产第一二区 | 99热在线精品免费 | 中文字幕在线一区 | 欧美精品一区二区三区四区 | 欧美一区二区三区电影 | 国产精品嫩草55av | 国产特一级黄色片 | 色.com| 天天干天天操 | 欧美中文字幕在线观看 | 亚洲国产精品久久 | www.788.com色淫免费 | 成人在线一区二区 | 久久爱综合网 | 国产精品久久久久久久久久久久冷 | 一区二区三区精品 | 中文字幕一区二区三区四区 | 爱干在线 | 超碰在线9| 国产图区 | 亚洲国产精品99久久久久久久久 | 欧美成人毛片 | 91网站在线播放 | 欧美黄色网 | 视频在线一区 | 亚洲一本 | 国产精品亚洲精品 | 欧美高潮 | 一级黄色毛片 | 欧美色爽 | 欧美一级精品片在线看 | 欧美日韩在线免费观看 | 日本一二三区在线 | jizz中国日本 | 国产大学生援交视频在线观看 | 中文字幕久久久 | 91人人澡人人爽 | 黄色一级片免费播放 | 一区在线视频 | 不卡一区二区三区视频 | 成人h动漫在线看 | 天天操天天摸天天干 | 亚洲一区二区久久 | 日韩精品视频在线 | 久久99精品久久久久久青青日本 | 中文字幕一区二区在线观看 | 欧美一级毛片久久99精品蜜桃 | 四虎最新入口 | 久久高清片 | 精品无码三级在线观看视频 | 伊人一区 | 国产精品美女视频免费观看软件 | 欧美日韩国产免费一区二区三区 | 91九色视频国产 | 精品欧美一区二区三区久久久 | 亚洲毛片在线观看 | 久久精品系列 | 欧美性猛交xxxx黑人猛交 | 日本一区二区不卡视频 | 欧美电影一区 | 91原创视频在线观看 | 99热最新网站 | 久久精品亚洲精品 | 日韩视频在线观看一区 | 日韩91| 午夜视频精品 | 羞羞的视频在线 | 成人精品一区二区三区 | 羞羞视频网站在线免费观看 | 精品中文字幕在线观看 | 天天爽天天操 | 欧美激情视频一区二区三区在线播放 | 国产一区在线视频 | 亚洲性爰 | 一级视频在线观看 | 亚洲一区 国产 | 国产精品二区一区 | 精品久| 日韩一及片 | 亚洲午夜精品片久久www慈禧 | 日本免费视频在线观看 | 日韩在线不卡 | 欧美成人精品在线视频 | 国产精品无码专区在线观看 | 亚洲精品乱码久久久久久蜜桃不卡 | 日韩欧美~中文字幕 | 一区二区三区视频在线免费观看 | 国产精品人人做人人爽人人添 | 久久国产一区二区 | 一区在线免费观看 | 亚洲伦理一区 | 五月激情天 | 欧美久久久久久久久久 | 久久影院一区 | 91精品国产综合久久久久久丝袜 | 欧美在线二区 | 亚洲三级在线 | 成人欧美一区二区三区在线观看 | 欧美一级片在线观看 | 国产欧美精品区一区二区三区 | 亚洲人成网站999久久久综合 | 欧美日韩国产一区二区 | 亚洲国产成人久久综合一区,久久久国产99 | 久久99精品视频 | 91精品国产自产精品男人的天堂 | 成人小视频在线观看 | 国产精品久久久久久 | 成人高清视频在线 | 免费在线观看国产 | 国产亚洲一区二区三区在线观看 | 亚洲国产高清在线 | 欧美日韩亚洲一区 | 一区二区蜜桃 | aⅴ色国产 欧美 | 美女久久久 | 婷婷91| 欧美精品一区在线 | 亚洲第一福利视频 | 一区二区三区小视频 | 99久久夜色精品国产亚洲1000部 | 成人精品视频99在线观看免费 | 日韩福利片 | 中文字幕精品一区 | 国产精品成av人在线视午夜片 | 一区二区三区在线免费 | 欧美日韩一区二区三 | 国产乱码精品一区二区三区忘忧草 | 日本精品免费 | 夜夜天天操 | 国产精品久久久久久久久小说 | www.fefe66.com| 色综合欧美 | 毛片99 | 麻豆精品一区二区 | 天天看天天操 | 国外成人在线视频 | 亚洲午夜在线 | 欧美精品一区二区三区在线 | 成年免费a级毛片 | 中文字幕一二三区 | 91极品在线 | 欧洲毛片 | 久久精品综合 | 黄色永久网站 | 热re99久久精品国产99热 | 国产美女久久 | 国产精品久久久久久久久 | 在线视频中文字幕 | 日本久久综合 | 91综合网 | 97综合色| 国产电影一区二区三区图片 | 国产高清精品一区二区三区 | 狠狠干狠狠操 | 国产精品久久久爽爽爽麻豆色哟哟 | 在线观看国产精品一区二区 | 成人网18免费网站 | 久久成人精品视频 | 欧美麻豆| 色综合视频 | 亚洲精品国偷拍自产在线观看 | 久久久av | 亚洲国产成人在线 | 午夜视频一区二区三区 | 欧美中文一区 | 一区免费看 | 在线激情av | 99精品国产高清一区二区麻豆 | 天天综合网7799精品 | 欧美激情一区二区三区在线视频 | 成人欧美一区二区三区黑人孕妇 | 精品一区二区三区在线视频 | 一a毛片 | 久久久久久九九 | 久久久精品免费看 | 日韩国产一区二区三区 | 毛片黄片 | 欧美日本一区 | 亚洲综合色视频在线观看 | 欧美在线一区二区三区 | 天堂中文视频在线观看 | 久久国产一区视频 | 午夜影院普通用户体验区 | 亚洲成人精品在线 | 精品国产髙清在线看国产毛片 | 日本精品一区二区三区视频 | 国产精品69毛片高清亚洲 | 欧美国产综合 | 久久福利| 在线99热 | 成人激情在线 | 国产精品久久久久久久一区探花 | 亚洲成人av电影 | 婷婷色av| 国模一区二区三区 | 免费国产一区二区 | 日韩在线播放一区二区三区 | 久久69精品久久久久久久电影好 | 99精品一级欧美片免费播放 | 久草热视频 | 亚洲精品亚洲人成人网 | 综合色播| 青青草视频免费观看 | 精品在线91 | 国产一区亚洲二区三区 | 99精品国产在热久久 | 中文字幕在线观看亚洲 | 亚洲激情av | 日韩一级大片 | 久久夫妻网 | 在线日韩| 亚洲一二视频 | 91亚洲精品在线观看 | 国产中文字幕一区 | 国产综合亚洲精品一区二 | 国产77777| 四季久久免费一区二区三区四区 | 夜夜春精品视频高清69式 | 欧美日韩一区在线观看 | 亚洲免费av片 | 精品久久久久久亚洲综合网 | 欧美日韩视频在线第一区 | 中字精品 | 亚洲aaa| 国产精品美女 | 在线免费一级片 | 天天操网| 日本私人网站在线观看 | 亚洲网站在线观看 | 国产偷录视频叫床高潮对白 | 免费一区二区三区视频在线 | 玖玖玖视频 | 91精品视频在线播放 | 亚洲免费人成在线视频观看 | 国产欧美精品一区二区三区四区 | 精品美女久久久 | 亚洲福利一区二区 | 成年人免费网站 | 九九精品久久久 | 91精品国产综合久久久久久蜜臀 | 日韩久久久一区二区 | 欧美成年网站 | 亚洲二区在线 | 久久久久国产成人精品亚洲午夜 | 日韩一区二区三区在线视频 | 亚洲精品乱码久久久久久久 | 国产精品永久免费 | 国产99一区| 日日操狠狠操 | 国产一区二区三区久久久久久久久 | 在线观看成人 | 亚洲国产精品区 | 久久精品国产免费 | 美女一级 | 国产亚洲成av人片在线观看桃 | 午夜精 | 91精品啪啪| 在线成人 | 欧美成人精品 | 亚洲一区二区久久 | 国产一区二区三区免费 | 国产丝袜视频 | 夜夜夜久久久 | 色黄网站 | 羞羞的视频网站 | 国产日韩欧美在线 | 亚洲va欧美va天堂v国产综合 | 成人在线 | 久久久国产精品视频 | 在线播放国产一区二区三区 | 国产精品一区二区三区四区五区 | 天堂网av2020 | 久久综合一区 | 国产一区二区三区高清 | 成人不卡视频 | 国产91网| 免费看一区二区三区 | 在线观看欧美一区二区三区 | 一级毛片观看 | 国产伦精品一区二区三区四区视频 | 午夜精品在线 | 亚洲人在线播放 | 国产精品无码永久免费888 | 91社影院在线观看 | 精品伦精品一区二区三区视频 | 久久久久91| 日韩成人免费av | 国产精品99久久久久久动医院 | 国产精品片aa在线观看 | 日韩欧美在线视频 | 国产精品国产精品国产专区不卡 | 亚洲精品在线免费 | 亚洲第一性理论片 | 午夜影院在线观看 | 在线欧美日韩 | 欧美激情欧美激情在线五月 | 欧美日韩视频在线第一区 | 久久久久久精 | 天天天天综合 | 欧洲av在线 | 久久成人久久爱 | 日本综合视频 | 久久综合久色欧美综合狠狠 | 亚洲视频免费看 | 成人免费淫片aa视频免费 | 精品久 | 国产福利在线视频 | 91在线高清| 蜜桃精品在线观看 | 国产精品片aa在线观看 | 91精品国产91久久久久久吃药 | 麻豆精品久久久 | 91在线免费观看 | 日韩中文视频 | 成人av免费在线观看 | 久草热8精品视频在线观看 黄色片网站视频 | 在线欧美日韩 | 久久精品黄 | 国产欧美日韩在线观看 | 暖暖视频日韩欧美在线观看 | 一区二区福利 | 久久久免费精品 | 欧美日韩亚洲视频 | 日本久久艹 | 无码日韩精品一区二区免费 | 午夜精品久久久久久久 | 久久久999成人 | 久久综合一区二区 | 日韩中文字幕一区 | 国产精品国产精品国产专区不卡 | 久久久国产一区二区三区四区小说 | 久久综合九色综合欧美狠狠 | 在线观看国产 | 亚洲精品一区二区三区不 | 国产免费自拍 | 天天看天天摸天天操 | 久久国产一区二区 | 亚洲人在线播放 | 成人国产精品久久 | 日韩一区二区三区在线观看 | 久久99国产精品久久99大师 | 国产亲子乱弄免费视频 | 免费观看一区二区三区毛片 | 成人午夜在线 | 精品一区二区在线观看 | 国产精品久久久久久福利一牛影视 | 日韩电影一区二区三区 | 久久久久久网站 | 欧美日韩电影一区二区三区 | 中文字幕日韩欧美 | 国产精品日产欧美久久久久 | 最新日韩在线观看视频 | 在线播放一级片 | 日本三级电影网站 | 欧美综合精品 | 中文字幕一区二区三区四区不卡 | 欧美乱淫 | 国产成人久久777777 | 亚洲免费影院 | 国产高清视频在线 | 国产精品对白一区二区三区 | 亚洲欧美一区二区精品中文字幕 | 福利网站在线观看 | 国产91久久精品 | 色综合一区二区三区 | 91碰碰| 999精品视频| 午夜精品久久久久久久星辰影院 | 欧美日本三级 | 色婷婷影院 | 伊人久久精品久久亚洲一区 | 久久av免费| 亚洲精品日韩综合观看成人91 | 亚洲综合大片69999 | 日韩精品久久理论片 | 欧美日韩一区二区三区四区 | 亚洲视频在线播放 | 欧美日韩亚洲在线 | 天天干天天操天天舔 | 69久久99精品久久久久婷婷 | 日韩精品小视频 | 91欧美在线| 自拍偷拍专区 | 五月激情综合 | 成人免费激情视频 | 一级免费黄视频 | www.9191| 日韩成人高清视频 | 一区在线不卡 | 亚洲国产日韩a在线播放性色 | 98精品国产高清在线xxxx天堂 | 久久久一区二区 | 亚洲电影一区二区 | 视频一区 国产精品 | 精品国产乱码久久久久久88av | 日韩成人高清视频 | 日韩在线视频观看 | 日本不卡高字幕在线2019 | 精品国产一区二区三区在线观看 | 在线观看国产视频 | 我要看黄色一级大片 | 一级全黄少妇性色生活片毛片 | 亚洲欧洲一区二区三区 | 日本黄色a视频 | av一区二区在线播放 | 一区二区三区视频免费在线观看 | 在线看一级片 | 久久久久久九九九九九九 | 91视频免费看 | 在线激情网| 成人二区 | 欧美精品成人一区二区三区四区 | 看欧美黄色录像 | www久久久 | av在线一区二区 | 中文字幕一区二区三区乱码图片 | 久久精品欧美一区二区三区不卡 | 欧美日韩在线观看中文字幕 | 日本videos18高清hd下 | 久久精品国产91精品亚洲高清 | 日韩激情网 | 日本高清视频在线播放 | 日韩一区二区在线观看 | 日韩在线永久免费播放 | 午夜理伦三级 | 国产精品久久久久久久久久久久久 | 亚洲精品91 |