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

通過編程模式起底小程序開發(fā)技術(shù)特點(diǎn)

移動(dòng)開發(fā) Android
從小程序誕生伊始,就有很多人開始研習(xí)小程序的機(jī)理和特點(diǎn)。但是真正理解小程序,還是需要一定的實(shí)踐,才能進(jìn)一步去理解小程序背后的一些想法,它和現(xiàn)有平臺(tái)的一些異同,以及如何去適應(yīng)它。

從小程序誕生伊始,就有很多人開始研習(xí)小程序的機(jī)理和特點(diǎn),從源代碼的角度、從整體架構(gòu)的角度,有很多不錯(cuò)的文章會(huì)令人受益。

但理論是一回事,真正理解小程序,還是需要一定的實(shí)踐,才能進(jìn)一步去理解小程序背后的一些想法,它和現(xiàn)有平臺(tái)的一些異同,以及如何去適應(yīng)它,做出更有趣的小程序。

小程序的編程模式

最近,我們?cè)谧觥篙p芒小程序+」和其它輕芒產(chǎn)品的小程序應(yīng)用過程中,對(duì)小程序有了進(jìn)一步的理解,進(jìn)而有了本文。

去理解一個(gè)開發(fā)平臺(tái)的特性,一個(gè)不錯(cuò)的角度就是從"編程模式"入手,就是看在這個(gè)平臺(tái)上去開發(fā),需要如何書寫和組織自己的代碼,進(jìn)而搞清楚三個(gè)問題:

  • 數(shù)據(jù)如何獲取
  • 界面如何呈現(xiàn)
  • 交互如何傳導(dǎo)

換而言之,就是從 MVC(Model-View-Controller)的視角去拆解這個(gè)平臺(tái)的特性,從而理解在這個(gè)平臺(tái)上開發(fā)有何特點(diǎn)。

數(shù)據(jù)如何獲取?

程序的本質(zhì),可以說就是數(shù)據(jù)的呈現(xiàn)和加工。所以,看一個(gè)客戶端開發(fā)平臺(tái)的基本能力,首先,就要看能把哪些數(shù)據(jù)放在上面處理,有哪些局限性,如果缺少了必要的數(shù)據(jù)獲取方式,那對(duì)于開發(fā)者而言,巧婦也難為無米之炊。

從這點(diǎn)看,小程序是提供的數(shù)據(jù)獲取方式算是非常豐富了,大概涵蓋:

通過 Https 請(qǐng)求去服務(wù)端獲取數(shù)據(jù)支持 Http 是最基本的,小程序?qū)?Http 有限制,除了要求通信協(xié)議是 Https,出現(xiàn)的域名必須提前預(yù)設(shè)之外,還將應(yīng)用層協(xié)議限定到了 Json 格式下,這一點(diǎn),可能比任何一個(gè)已有客戶端平臺(tái)更為嚴(yán)苛。站在小程序的平臺(tái)角度來看,通過這樣的協(xié)議規(guī)定,對(duì)應(yīng)用中流動(dòng)的數(shù)據(jù)有了更強(qiáng)的管控能力;而對(duì)于開發(fā)者而言,則需要花些時(shí)間去調(diào)整自己的服務(wù)協(xié)議以便適應(yīng)小程序的要求。

可以在本地文件系統(tǒng)上存取數(shù)據(jù)小程序提供了算是豐富的 APIs 供開發(fā)者在手機(jī)系統(tǒng)上存取文件。開發(fā)者可以本地文件來做緩存、做狀態(tài)記憶,等等,為開發(fā)提供了不錯(cuò)的便利。

可以讀寫設(shè)備中的一部分信息小程序開放了一些 APIs,幫助開發(fā)者獲得設(shè)備上的一些基本信息,比如:手機(jī)型號(hào)、屏幕尺寸,網(wǎng)絡(luò)狀態(tài),等等。比較有價(jià)值的,是可以選擇獲取手機(jī)上的圖片等多媒體文件,這給做一些圖像相關(guān)的應(yīng)用提供了可能性;以及它還提供了不少設(shè)備上羅盤、重力感應(yīng)器、地理位置等相關(guān)的信息,對(duì)開發(fā)者理解用戶所處的環(huán)境有很大幫助。

從上面的介紹不難看出,小程序中的數(shù)據(jù)獲取方式,和一般的瀏覽器提供的相仿(也就是和做 Html5 應(yīng)用能獲取的信息),比原生的客戶端更局限一些,但對(duì)于絕大多數(shù)的應(yīng)用而言,是足夠用了。

除此之外, 小程序提供了微信生態(tài)中的一些數(shù)據(jù),比如賬號(hào)信息。這對(duì)于微信龐大的生態(tài)而言,只是非常小的一部分?jǐn)?shù)據(jù),但確是開發(fā)小程序應(yīng)用中最值得利用的一部分?jǐn)?shù)據(jù)。

舉個(gè)例子,在其它平臺(tái)上,如果需要獲取到微信的賬號(hào)信息,需要通過一次用戶授權(quán)。如果用戶暫時(shí)不想提供,則會(huì)使得程序出于 “未登錄” 狀態(tài),給整個(gè)服務(wù)的展開帶來困難。而在小程序中,只要用戶點(diǎn)開小程序,就意味著完成了授權(quán),開發(fā)者可以直接讀取到小程序的賬號(hào)信息,并可以同步到自己的服務(wù)端作為該用戶的身份標(biāo)識(shí),從而實(shí)現(xiàn) “始終登錄” 的狀態(tài),使得后續(xù)服務(wù)可以更好的提供。

一份可行的示例如下:

  1. // 先調(diào)用登錄接口,獲得請(qǐng)求碼 
  2.  
  3. wx.login({ 
  4.  
  5. success: function (res) { 
  6.  
  7. // 獲取到請(qǐng)求碼,繼續(xù)請(qǐng)求用戶的基本信息 
  8.  
  9. var code = res.code 
  10.  
  11. wx.getUserInfo({ 
  12.  
  13. success: function (res) { 
  14.  
  15. // 獲取到了加密的用戶信息,去服務(wù)端解密并存儲(chǔ) 
  16.  
  17. var userData = res.encryptedData 
  18.  
  19. var iv = res.iv 
  20.  
  21. wx.request({ 
  22.  
  23. url: 'https://my_account/...'
  24.  
  25. data: { 
  26.  
  27. code: code, 
  28.  
  29. user_data: userData, 
  30.  
  31. iv: iv 
  32.  
  33. }, 
  34.  
  35. success: function(res) { 
  36.  
  37. // 在服務(wù)器上,解析并生成自己的賬號(hào)驗(yàn)證信息 
  38.  
  39. var user = res.data.user 
  40.  
  41. var token = res.data.token 
  42.  
  43. // 并且還可以存在本地存儲(chǔ)上,供下次打開使用 
  44.  
  45. wx.setStorage({ 
  46.  
  47. key: 'my_token'
  48.  
  49. data: token 
  50.  
  51. }) 
  52.  
  53.  
  54. }) 
  55.  
  56.  
  57. }) 
  58.  
  59.  
  60. }); 

界面如何呈現(xiàn)?

小程序剛發(fā)布的時(shí)候,一片人開始驚呼 Html5 的時(shí)代就要到來了,因?yàn)樾〕绦蛟诮缑鎸樱褂昧?**Html/CSS/Javascript** 這套 Html5 的技術(shù)棧。但很快,隨著聰明的程序員們對(duì)小程序的理解進(jìn)一步加深,就發(fā)現(xiàn)小程序所說的 Html/CSS/Javascript 和 Html5 中的完全不是一回事,其差異,基本等同于 Java 和 Javscript 間的差距。

在小程序中,和 Html 對(duì)應(yīng)的是 **WXML** ,它保留下來的只有 Html 的概念,而傳統(tǒng)的 `<div>` `<a>` 標(biāo)簽都完全被拋棄了。和 Facebook 的 React 類似,小程序引入了自己的 Html 標(biāo)簽,它和 `<article>` `<section>` 這樣的語(yǔ)義標(biāo)簽不同,小程序中的標(biāo)簽,更像是傳統(tǒng)客戶端開發(fā)中的 **組件** (或者叫控件),每個(gè)組件都有自己背后的職能和使用方式。比如:如果需要展示圖片,就只能用 `<image>` 標(biāo)簽,其它標(biāo)簽都無法承載,而如果需要提供可選的文本,則只能使用 `<text>` 標(biāo)簽,等等。這樣的方式帶來***的問題是傳統(tǒng)的 Html 頁(yè)面都無法在小程序中呈現(xiàn)(而小程序正好,沒提供類似 Web View 的客戶端控件)。

比如,大量的內(nèi)容網(wǎng)站,其文章內(nèi)容都是存儲(chǔ)為一個(gè) Html 片段的,這樣就無法直接呈現(xiàn)在小程序中。如果需要展示,一個(gè)思路是構(gòu)建一個(gè)中間服務(wù),將 Html 轉(zhuǎn)譯成一種更簡(jiǎn)單利于渲染的中間格式數(shù)據(jù),然后,在小程序端把中間格式的數(shù)據(jù)轉(zhuǎn)換成小程序的標(biāo)簽進(jìn)行呈現(xiàn)。我們?cè)谧?[輕芒生活](http://s.qingmang.mobi/10c) 的時(shí)候,正好設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)轉(zhuǎn)義服務(wù),將任意一個(gè) Html 頁(yè)面轉(zhuǎn)換成中間格式(內(nèi)部名是 RAML),解決了內(nèi)容性 Html 頁(yè)在小程序上的呈現(xiàn)問題。

(在小程序中呈現(xiàn) Html 內(nèi)容頁(yè))

和 Html 相比,小程序的 **WXSS** 算是比較完整的保留了 CSS 的特征,這一點(diǎn)還蠻出乎意料的。WXSS 在語(yǔ)義上***的不同,一是在于它支持了相對(duì)尺寸單位 `rpx` ,每 750rpx 等價(jià)于當(dāng)前設(shè)備的屏幕寬度。這個(gè)相對(duì)尺寸單位的引入,把那種繁復(fù)的屏幕尺寸適配變得簡(jiǎn)單了不少。而和 CSS 的另一個(gè)不同,是它更像傳統(tǒng)控件樣式用法,不支持 CSS3 那么多的選擇器,使用中,更多的是一個(gè)控件一個(gè) class 這樣來使用。

小程序中雖然支持 ES6 標(biāo)準(zhǔn)的 Javascript,但窗口級(jí)的 Javascript 在小程序中完全被廢棄掉了,開發(fā)者無法用 Javascript 去調(diào)用 window、document 對(duì)象來修改界面元素完成邏輯。小程序中的 Javascript 其實(shí)直接對(duì)應(yīng) node.js 的用法,用來完成后臺(tái)業(yè)務(wù)邏輯,而不是直接控制交互。小程序的這個(gè)設(shè)計(jì),使其可以用到 virtual dom 的方式來渲染界面,讓界面數(shù)據(jù)更新時(shí)的性能優(yōu)化成為可能,但付出的代價(jià)就是少了窗口級(jí) Javscript 的那層膠水的黏合,使得很多功能的開發(fā)變得極其呆板和繁復(fù)。

交互如何傳導(dǎo)?

所謂交互的傳導(dǎo),是當(dāng)用戶和界面發(fā)生交互式,平臺(tái)框架通過何種方式告訴業(yè)務(wù)層,并將處理后的變化呈現(xiàn)回交互界面上。如果把 WXSS + WXML 繪制的頁(yè)面看成 “前端”,把 Javascript 撰寫的業(yè)務(wù)邏輯看成 “后端”,你會(huì)發(fā)現(xiàn),小程序的前后端交互特別像 Web 1.0 的模式,前端把交互行為封裝成 **事件(event)** 發(fā)送到后端,后端處理完成后,通過 **setData** 方法將數(shù)據(jù)回傳到前端。

(小程序的交互傳導(dǎo))

小程序提供的 Events,基礎(chǔ)的有類似單擊、長(zhǎng)按、觸摸、滑動(dòng),等等,對(duì)于視頻播放器等控件,還有監(jiān)聽播放、暫停等等。這些事件涵蓋算是比較基礎(chǔ)的,沒有更高級(jí)的手勢(shì)、多點(diǎn)觸控等相關(guān)事件,但也還是足夠讓開發(fā)者具體了解用戶的輸入,進(jìn)而做出響應(yīng)。

而小程序給界面相應(yīng)的唯一方式,是通過 Page 中的 setData API 對(duì)界面上的數(shù)據(jù)進(jìn)行更新, **小程序會(huì)比較兩次調(diào)用期間數(shù)據(jù)的變化** ,來決策需要更新哪部分的交互界面。

舉個(gè)實(shí)際的例子,假設(shè)開發(fā)者需要做一個(gè)滑動(dòng)切換頁(yè)面的效果,在小程序中該如何實(shí)現(xiàn)?首先,是將變量數(shù)據(jù)引入渲染頁(yè)面:

<view class="page" id="current-page"

style="left:{{distance}}rpx;"

bindtouchstart="movePage" bindtouchcancel="movePage"

bindtouchmove="movePage" bindtouchend="movePage">

</view>

可以看到, `distance` 是一個(gè)模版參數(shù),它初始值為 0,表示移動(dòng)的距離。通過 **bindtouchstart** 等函數(shù)綁定上 Javascript 的方法,將事件回傳。

  1. movePage: function(event) { 
  2.  
  3. var status = { 
  4.  
  5. needUpdate: false
  6.  
  7. distance: 0 
  8.  
  9.  
  10. // 處理各種事件,計(jì)算是否需要刷新,和移動(dòng)方向 
  11.  
  12. if ("touchstart" === event.type) { 
  13.  
  14. // 開始計(jì)算移動(dòng) 
  15.  
  16. ... 
  17.  
  18. else if ("touchend" === event.type) { 
  19.  
  20. // 判定移動(dòng)的距離是否足夠. 
  21.  
  22. ... 
  23.  
  24. else if ("touchcancel" === event.type) { 
  25.  
  26. // 被打斷就算了. 
  27.  
  28. ... 
  29.  
  30. else if ("touchmove" === event.type) { 
  31.  
  32. // 計(jì)算移動(dòng)距離 
  33.  
  34. ... 
  35.  
  36.  
  37. // 根據(jù)移動(dòng)的距離,來更新界面 
  38.  
  39. if (status.needUpdate) { 
  40.  
  41. this.setData({ 
  42.  
  43. distance: status.distance 
  44.  
  45. }) 
  46.  
  47.  

而在 Javascript 一端,則捕獲事件、計(jì)算偏移量,然后將新的偏移量送到前端界面。

從這里可以看到,小程序的交互模式,是典型的單向模式,前端回傳事件,數(shù)據(jù)單向的推到前端,而不是通過類似 “變量” “狀態(tài)” 這樣的方式來告知。這樣的模式下,開發(fā)者對(duì)界面變化的控制往往不可能太精準(zhǔn),整個(gè)核心,都依賴小程序?qū)纱螖?shù)據(jù)變化的 diff 計(jì)算,這個(gè)會(huì)最終影響整個(gè)交互的性能。

小程序開發(fā)模式的特點(diǎn)

至此,我們可以來總結(jié)一下小程序開發(fā)的一些特點(diǎn)了。整體來看,小程序是借了 Html5 的技術(shù)棧,行了傳統(tǒng)客戶端開發(fā)的模式,這一點(diǎn)和 React 等平臺(tái)會(huì)比較相近,可以視為 HTMLl5 的一個(gè)新分支。

從設(shè)計(jì)思路看,小程序做了大量的 “限制”,***的限制,是開發(fā)者其實(shí)是無法通過 Javascript 這樣的編程語(yǔ)言,直接對(duì)界面進(jìn)行控制,而是通過數(shù)據(jù)驅(qū)動(dòng)來間接實(shí)現(xiàn)。這對(duì)于缺少開發(fā)經(jīng)驗(yàn)的人而言,是有益的事情,因?yàn)檫@降低了理解的門檻,但對(duì)于復(fù)雜的應(yīng)用而言,這個(gè)模式開發(fā)起來比較呆板,往往是一個(gè)變化多處修改,增加了理解代碼的成本。

開發(fā)小程序的坑

開發(fā)小程序的日子,也是一個(gè)踩坑的歷程。簡(jiǎn)單總結(jié),小程序中的坑大概來自這幾個(gè)方面:

和 Web 的兼容性。小程序引入了 Html/CSS 做為技術(shù)棧,并在其基礎(chǔ)上進(jìn)行了定制。很多開發(fā)中的問題都來自于 “定制”,因?yàn)槟悴⒉恢滥牟糠志捅欢ㄖ屏耍牟糠质潜焕^承了。比如,你用了一個(gè) CSS 語(yǔ)法,發(fā)現(xiàn)并不生效,或者效果和瀏覽器中的不一樣,于是,你只能換一個(gè)寫法,結(jié)果很有可能,又會(huì)繼續(xù)發(fā)現(xiàn),這個(gè)新的寫法可能效果也不對(duì),于是你只能繼續(xù)嘗試,如此反復(fù),可能會(huì)消耗大量的時(shí)間。

開發(fā)環(huán)境不穩(wěn)定。小程序的開發(fā),是基于微信自制的一個(gè) IDE,但當(dāng)下,IDE 的穩(wěn)定性、易用性都非常之差,時(shí)常出現(xiàn) Bug,你以為是你的程序?qū)戝e(cuò)了,但其實(shí),是 IDE 的 Bug,重啟一下 IDE,一切都引刃而解了。于是,當(dāng)你日后開發(fā)小程序時(shí)出現(xiàn)某種異樣,先重啟 IDE,再看問題還在不在,也許是種更節(jié)省時(shí)間的方式。

缺少真機(jī)調(diào)試環(huán)境。小程序的運(yùn)行時(shí)其實(shí)就是微信,微信幾乎沒提供任何真機(jī)上調(diào)試工具給你(也不能說完全沒有,有一個(gè)只能在真機(jī)上瞪著眼睛看的日志框)。你在模擬器中調(diào)試好的程序,可能在真機(jī)上運(yùn)行起來并不如預(yù)期。比如,我們碰到過真機(jī)上白屏、位置錯(cuò)亂、動(dòng)畫效果不對(duì),以及 Android 上至今還不能運(yùn)行,等等問題。這對(duì)于稍微復(fù)雜的程序而言,頗為夢(mèng)魘,想做一些細(xì)粒度的調(diào)整和優(yōu)化,基本只能靠猜。

閉源且缺少學(xué)習(xí)資料。小程序整體上是閉源狀態(tài)(雖然模擬器和 IDE 部分可以通過反編譯來看),且缺少足夠的學(xué)習(xí)資料,如果一旦碰到控件如何使用、為什么這么用不對(duì),之類的問題,就只能靠不停的試來解決,也需要耗費(fèi)大量時(shí)間。

***介紹下「輕芒小程序+」。「輕芒小程序+」是由輕芒團(tuán)隊(duì)提出的小程序解決方案,它將替內(nèi)容創(chuàng)業(yè)者免費(fèi)搭建屬于自己的微信小程序,其創(chuàng)建的小程序在內(nèi)容發(fā)布之外,還將具有評(píng)論、筆記、付費(fèi)閱讀等特色功能。輕芒小程序+ 不打算創(chuàng)建一個(gè)新的內(nèi)容平臺(tái),而是將內(nèi)容創(chuàng)業(yè)者現(xiàn)有的自媒體賬號(hào)轉(zhuǎn)化成微信小程序。內(nèi)容創(chuàng)業(yè)者只要照常更新自媒體,這些內(nèi)容就能自動(dòng)更新到小程序。

簡(jiǎn)而言之,做為一個(gè)新的開發(fā)平臺(tái),微信小程序從本身的穩(wěn)定性,以及配套的工具鏈上都不算完善,這對(duì)于早期開發(fā)者而言,需要耗費(fèi)額外精力去嘗試和探索,但這也許就是一個(gè)新平臺(tái)的價(jià)值和代價(jià)吧。

責(zé)任編輯:Ophira 來源: 作者投稿
相關(guān)推薦

2014-08-29 10:53:28

移動(dòng)OA

2017-03-06 16:43:04

無人駕駛Google X懸滑板

2014-12-24 09:21:42

2024-03-20 08:13:10

程序開發(fā)App

2017-08-11 09:00:36

虛擬機(jī)Hypervisor服務(wù)器

2017-06-06 09:02:30

2015-04-14 12:53:48

浪潮

2023-07-28 07:31:26

2018-09-18 23:29:43

小程序云服務(wù)

2015-11-04 11:17:10

移動(dòng)開發(fā)圖片格式

2022-04-24 15:29:17

微服務(wù)go

2016-04-20 16:56:45

bugly騰訊微信

2024-03-12 16:03:00

2017-05-08 15:03:07

微信小程序開發(fā)實(shí)戰(zhàn)

2016-09-27 15:40:58

微信程序前端

2021-10-12 08:34:23

React組件前端

2009-01-12 16:54:43

2015-09-17 09:29:12

Android性能優(yōu)化

2025-09-05 07:35:28

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

h片视频在线观看| 精品久久久久久久久久久院品网| 欧美www视频| 日韩久久久久久久久久久久| 一区二区三区久久久久| 日本理论片午伦夜理片在线观看| 丝袜亚洲另类欧美| 亚洲成av人片| 亚洲精品免费av| 国产三级在线观看完整版| 竹内纱里奈兽皇系列在线观看| 国产一区二区成人久久免费影院| 一本色道久久综合亚洲精品小说| 久久久久久久中文| 亚洲国产精品久久久久久久| 小处雏高清一区二区三区| 91福利视频久久久久| 精品一区二区三区日本| 国产大片中文字幕| 亚洲午夜免费| 亚洲国产一区二区三区青草影视| 91情侣在线视频| 成人免费毛片东京热| 亚洲一区二区av| 亚洲欧美综合色| 国产主播欧美精品| 99热这里只有精品4| 日本久久二区| 亚洲丝袜精品丝袜在线| 亚洲精品免费一区二区三区| 亚洲精品1区2区3区| 老牛精品亚洲成av人片| 激情久久av一区av二区av三区| 99在线首页视频| 国产在线精品观看| 日韩大胆成人| 91官网在线免费观看| 国产毛片久久久久久国产毛片| yw在线观看| 极品少妇xxxx精品少妇| 久久国产精品网站| 日批免费观看视频| 大菠萝精品导航| 国产婷婷色一区二区三区四区 | 女女互磨互喷水高潮les呻吟| 欧美视频二区欧美影视| 一区二区高清免费观看影视大全| 999热视频在线观看| 一级片在线免费观看视频| 中文字幕一区二区三区乱码图片| 日韩一区二区三区免费观看| 少妇一晚三次一区二区三区| 五月婷婷深深爱| 日韩不卡免费视频| 超在线视频97| 国产成人精品无码片区在线| 黄色精品视频| 一区二区三区影院| 欧美裸体网站| 国产三级伦理片| 日韩视频一区| 色七七影院综合| 一级黄色片毛片| 91成人抖音| 亚洲成人动漫av| 亚洲午夜久久久影院伊人| 亚洲国产一二三区| 国产成人午夜电影网| 国产xxx69麻豆国语对白| 少妇高潮一区二区三区喷水| 久久中文字幕av| 日韩电视剧在线观看免费网站| 污色网站在线观看| 黄色18在线观看| 精品欧美激情精品一区| gogogo免费高清日本写真| 污视频在线免费观看| 99亚偷拍自图区亚洲| 91亚洲永久免费精品| 亚洲中文一区二区| 亚洲激情综合| 欧美成人精品在线视频| 国产伦精品一区二区三区精品视频| 91精品视频观看| 99这里有精品视频| 丝袜美腿高跟呻吟高潮一区| 国产福利视频一区| 97超视频在线观看| 成人黄色在线看| 成人免费在线视频网址| 色屁屁影院www国产高清麻豆| 国产精品久久观看| 国产亚洲欧洲高清| 黄色a一级视频| gogo人体一区| 日韩一区二区三区电影在线观看| 超碰人人cao| 中文字幕综合| 日韩高清有码在线| 一区二区三区在线播放视频| 综合亚洲自拍| 欧美欧美欧美欧美首页| 国产一区二区网| 青春草视频在线观看| 中文字幕一区二区视频| 先锋影音一区二区三区| 裸体xxxx视频在线| 久久伊人中文字幕| 精品一区久久| 美女隐私在线观看| 日韩理论片在线| 国产精品宾馆在线精品酒店| 超碰中文在线| 亚洲va中文字幕| 久久撸在线视频| 日日狠狠久久偷偷综合色| 久久精品影视伊人网| 性生交大片免费全黄| 99热精品在线观看| 99久久自偷自偷国产精品不卡| 久青草国产在线| 亚洲自拍与偷拍| 日韩av卡一卡二| 日本成人7777| 亚洲女同性videos| 性高潮久久久久久久| 欧美日本一区二区高清播放视频| 欧美大荫蒂xxx| 国产无码精品在线观看| 狠狠色2019综合网| 亚洲高清123| 国产福利视频在线观看| 亚洲一级在线观看| www激情五月| 美女主播精品视频一二三四| 久久成人av网站| 伊人22222| 国产成人一区二区精品非洲| 亚洲日本理论电影| 精品123区| 亚洲人成电影在线| 久久国产高清视频| 秋霞成人午夜伦在线观看| 亚洲一区二区三区777| yw193.com尤物在线| 在线一区二区观看| 污视频在线观看免费网站| 伊人精品综合| 欧美国产乱视频| 亚洲AV无码精品色毛片浪潮| 亚洲欧美一区二区三区久本道91| 国产一伦一伦一伦| 爽成人777777婷婷| 成人在线视频福利| caoporn免费在线视频| 在线播放中文一区| 99久久人妻无码中文字幕系列| 狠狠干成人综合网| 国产精品九九九| 亚洲国产成人在线观看| 一区二区三区在线观看国产| 亚洲少妇一区二区| 欧美一区二区三| 久久久久久久久久久免费精品| 九九九九精品| 丰满少妇一区二区三区| 激情综合网址| 国产精品欧美激情| 少妇无码一区二区三区| 国产精品你懂的在线欣赏| 丁香六月激情婷婷| 久久影视精品| 精品一区二区三区免费毛片爱| 日韩精品免费观看视频| 亚洲成人激情自拍| 成人性生活免费看| 免播放器亚洲| 国产精品丝袜久久久久久不卡| 国产在线电影| 亚洲综合色噜噜狠狠| 一级黄色免费毛片| 久久av无码精品人妻系列试探| 男女啪啪的视频| 一区二区在线中文字幕电影视频| 国产专区第一页| 美国一区二区三区在线播放| 国产精品久久九九| 亚洲乱亚洲乱妇| 国产二区精品| 国产一区二区三区四区| 成人av在线观| 国产69精品久久久久999小说| 8av国产精品爽爽ⅴa在线观看 | 我看黄色一级片| 国产精品视频3p| 亚洲天堂免费在线| 日韩视频一区在线| 亚洲视频免费在线观看| 99久久免费精品| 3d动漫精品啪啪一区二区三区免费 | ww亚洲ww在线观看国产| 亚洲色图日韩av| 国产一区二区视频免费观看| 亚洲一本大道在线| 美国一级黄色录像| 久久综合图片| 免费观看国产视频在线| 欧美xxxx性| 国产69精品久久久| 亚洲第一视频在线播放| 色老汉av一区二区三区| 一区二区视频免费看| 久久99精品久久久| 黄色一级片播放| 欧美精品日韩| 亚洲国产精品综合| 乱亲女h秽乱长久久久| 91精品久久久久久久久久久久久 | 久久久久久这里只有精品| 精品久久av| 亚洲福利在线播放| 国产一级理论片| 国产精品剧情在线亚洲| 无码人妻精品一区二区三区温州| 国产激情一区二区三区四区 | 青青草免费在线视频观看| 日本欧美在线| 国产91|九色| 色吊丝在线永久观看最新版本| 精品av在线播放| 日韩a级片在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 韩国三级hd两男一女| 国内久久精品视频| 欧美大尺度做爰床戏| 久久久久久黄| 午夜精品视频在线观看一区二区| 加勒比久久高清| 97在线资源站| 看亚洲a级一级毛片| 国产日韩欧美夫妻视频在线观看| 自拍偷自拍亚洲精品被多人伦好爽| 在线观看国产成人av片| 香蕉久久一区二区三区| 精品99999| 波多野结衣激情视频| 中文字幕人成不卡一区| a天堂中文字幕| 国产色91在线| 一级特黄曰皮片视频| 国产亚洲一区二区三区四区| 能免费看av的网站| 日本一区二区在线不卡| www.偷拍.com| 国产一区二区三区香蕉| 九九久久久久久| 国产一区二区导航在线播放| 亚洲免费成人在线视频| 国产精品久久久免费| 亚洲一区精彩视频| 久久网站免费观看| 色中文字幕在线观看| 亚洲精品a级片| 992tv快乐视频| 在线成人亚洲| 男女午夜激情视频| 欧美va天堂| 日本一区免费看| 福利一区视频| 国产一区视频在线| 韩国一区二区三区视频| 国产超碰91| 综合久草视频| av资源一区二区| 婷婷精品在线| 亚洲欧美影院| 欧美日韩国产综合网| 青青草成人免费在线视频| 美女国产一区| 午夜视频在线网站| 水蜜桃久久夜色精品一区的特点| 国产又粗又长又大的视频| 99国产精品| 国产又大又黄又粗的视频| 激情五月婷婷综合| 成人做爰www看视频软件| 99国产精品国产精品久久| 久久久久久久久久毛片| 国产精品一区2区| 性欧美videossex精品| 国产自产2019最新不卡| 岛国精品资源网站| 中文乱码免费一区二区 | 国产欧美日韩另类一区| 尤物在线免费视频| 欧美国产一区二区在线观看| 中文字幕五月天| 富二代精品短视频| 国产精品久久久久久久一区二区 | 高清欧美电影在线| 日本美女久久| 国产福利久久精品| 日韩不卡一区| 性刺激综合网| 亚洲性感美女99在线| 尤蜜粉嫩av国产一区二区三区| 国产福利一区在线| 欧美老女人性生活视频| 亚洲一区二区三区免费视频| 色婷婷久久综合中文久久蜜桃av| 色综合久久综合| 国产精品久免费的黄网站| 欧美日本一道本| 欧美日韩国产中文字幕在线| 久久影视电视剧免费网站| gogo亚洲高清大胆美女人体| 99久久99久久| 图片区亚洲欧美小说区| 国产福利视频在线播放| 福利91精品一区二区三区| 欧美一级片在线免费观看| 国产日本欧美一区二区| 在线观看 中文字幕| 福利视频第一区| www.国产黄色| 亚洲精品白浆高清久久久久久| 亚洲精品免费在线观看视频| 色青青草原桃花久久综合| 国产精品扒开腿做爽爽爽视频软件| 成人国产一区二区| 91精品国产自产在线观看永久∴| 国产精品99久久免费黑人人妻| 日本人妖一区二区| 真人bbbbbbbbb毛片| 亚洲综合色成人| 国产女18毛片多18精品| 中文字幕日韩欧美在线视频| 日本中文字幕伦在线观看| 日本一区二区在线播放| 久久天堂影院| 色婷婷精品国产一区二区三区| 亚洲欧美高清| 亚洲天堂网一区二区| 天天综合天天综合色| 日本免费不卡视频| 在线观看中文字幕亚洲| 丝袜美腿诱惑一区二区三区| 91精品美女在线| 98精品久久久久久久| 香港日本韩国三级网站| 欧美激情在线一区二区| 在线天堂www在线国语对白| 日本久久一区| 国产精品女主播av| 国产乱码精品一区二区三区卡| 国产成人愉拍精品久久| 狠久久av成人天堂| 久久6精品影院| 国产欧美日韩网站| av片哪里在线观看| 国产91富婆露脸刺激对白| 成人网在线免费观看| 一卡二卡在线视频| 成人精品高清在线| 国产欧美日韩亚洲精品| 纪美影视在线观看电视版使用方法| 欧美日韩国产观看视频| 欧美一区二区三区人| 人妻精品一区二区三区| 久久久免费高清电视剧观看| 九九热hot精品视频在线播放 | 狠狠狠综合7777久夜色撩人| 国产99久久久欧美黑人| 日韩在线观看| 黄页网站在线看| 午夜视黄欧洲亚洲| 国产片在线观看| 欧美精品福利在线| 欧美大片网址| 欧美日韩在线观看不卡| 亚洲欧美激情视频在线观看一区二区三区| 久久久免费高清视频| 在线观看日韩av| 麻豆久久一区| 国产乱子夫妻xx黑人xyx真爽| 中文字幕第一区二区| 亚洲第一天堂影院| 国产精品99久久久久久久久久久久 | a一级免费视频| 精品国产凹凸成av人网站| 欧美成a人片在线观看久| 五月天激情图片| 2欧美一区二区三区在线观看视频| 自拍偷拍色综合| 国内久久久精品| 97精品国产福利一区二区三区| 国产综合内射日韩久| 欧美性生活大片视频| 黄色网址在线播放| 97在线中文字幕|