午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 在Ruby on Rails中使用AJAX的教程

在Ruby on Rails中使用AJAX的教程

熱門標簽:電銷機器人廠商代理 滴滴外呼系統 地圖標注賺錢項目注冊 湖州u友防封電銷卡 常德電銷平臺外呼系統軟件價格 高德地圖標注客服 百度地圖標注自定義圖片 徐州網絡外呼系統哪個好 白銀外呼paas系統

如果沒有聽說過 Rails,那么歡迎您外星旅行歸來,近幾年大概只有那個地方沒有聽說過 Ruby on Rails 了。Rails 最吸引人的地方是能夠很快地建立功能完備的應用程序并運行起來。Rails 為 Ajax 而內置集成的 Prototype.js 庫可以輕松快速地創建所謂的富 Internet 應用程序。

本文將逐步引導您創建 Rails 應用程序。然后深入分析如何利用 Ajax 特性編寫從服務器上讀寫數據的 JavaScript 代碼。
從容起步 Ajax 之旅——Ajax 技術資源中心

什么是 Ajax?Ajax(Asynchronous JavaScript and XML)是一種編程技術,它允許結合 XML 和 JavaScript 用于 Web 應用程序,從而打破頁面刷新的范式,使您的用戶快速方便的與 Web 應用程序交互。

您想了解如何構建基于 Ajax 的應用嗎?developerWorks 中國網站上有非常多的關于 Ajax 的文章、教程和技巧,通過“Ajax 技術資源中心”,您可以非常快捷地找到能幫助您完成與 Ajax 相關的應用開發的技術參考資源。

關于 Rails 的一點說明

那么到底什么是 Rails 呢?Rails 是建立在 Ruby 編程語言上的一種 Web 應用程序平臺。Ruby 存在大約有 10 年了。和 Perl 以及 Python 一樣,它也是一種開放源碼的敏捷編程語言,完全支持面向對象編程。

Rails 作為一種應用程序框架,強調使用正確的 Web 應用程序模式,即模型-視圖-控制器(MVC)。在這里,系統的模型部分通常用一組映射到數據庫表的 ActiveRecord 對象表示。控制器部分是一個 Ruby 類,其方法可以對模型執行各種操作。視圖一般就是通過 ERB 模板(ERB 是 Ruby 內置的文本模板包)生成的超文本標記語言代碼(HTML),形式上和 PHP 或 JavaServer Pages(JSP)代碼生成的 HTML 類似。視圖也可以是可擴展標記語言(XML)、文本、JavaScript 代碼、圖片或者其他東西。

用戶從 Rails Web 應用程序請求頁面時,URL 通過路由系統發送,后者將請求發送給控制器。控制器從模型請求數據并發送給視圖完成格式化。

創建 Rails 應用程序時,系統自動生成一些目錄和基本文件。包括隨系統安裝的 JavaScript 文件目錄(包括 Prototype.js 庫)、視圖、模型和控制器目錄,甚至還有存放從其他開發人員那里下載的插件的目錄。


開始使用 Rails

創建 Rails 應用程序最簡單的辦法就是使用一個預先打好包的 Rails 系統。如果平臺是 Microsoft? Windows?,建議您使用 Instant Rails。在 Macintosh 機器上我非常喜歡 Locomotive 2 應用程序。這些應用程序都包括 Rails 框架、Ruby 語言、Web 服務器和 MySQL。下載了這么多東西(確實是這樣)之后,創建 Rails 應用程序僅僅是舉手之勞了。

本文將創建一個新的菜譜應用程序,稱為Recipe,只需要一個表。清單 1 顯示了 Recipe 應用程序的數據庫遷移。
清單 1. 數據庫遷移

class CreateRecipes  ActiveRecord::Migration
 def self.up
 create_table ( :recipes, :options => 'TYPE=InnoDB' ) do |t|
 t.column :name, :string, :null => false
 t.column :description, :text, :null => false
 t.column :ingredients, :text, :null => false
 t.column :instructions, :text, :null => false
 end
 end

 def self.down
 drop_table :recipes
 end
end

數據庫中只有一個表:recipes。包含五個字段:name、description、ingredients、instructions,還有一個字段是 Rails 基礎設施自動維護的唯一標識符。

建立好數據庫表之后,接下來就要為它包裝一個 ActiveRecord 對象。該對象如 清單 2 所示。
清單 2. Recipe 模型

class Recipe  ActiveRecord::Base
 validates_presence_of :name
 validates_presence_of :description
 validates_presence_of :ingredients
 validates_presence_of :instructions
end

ActiveRecord 基類負責所有基本的數據庫訪問:查詢表、插入、更新和刪除記錄。這里只要為每個字段增加驗證就夠了。我告訴 Rails 每個字段不能為空。


Ajax 表單

創建 Recipe 應用程序的第一步是向數據庫中添加菜譜。首先介紹在 Rails 中創建基本 HTML 表單的標準方法。如 清單 3 中的 RecipesController 類所示。
清單 3. Recipes_controller.rb

class RecipesController  ApplicationController
 def add
 @recipe = Recipe.new
 if request.post?
 @recipe.name = params[:recipe][:name]
 @recipe.description = params[:recipe][:description]
 @recipe.ingredients = params[:recipe][:ingredients]
 @recipe.instructions = params[:recipe][:instructions]
 @recipe.save
 end
 end
end

只有一個方法 add,它首先創建一個空的 Recipe 對象。然后當客戶機發出請求時添加參數并保存數據。

該頁面的 ERB 模板如 清單 4 所示。
清單 4. Add.rhml

html>
 body>
%= error_messages_for 'recipe' %>br/>
%= start_form_tag %>
table>
tr>td>Name/td>
td>%= text_field :recipe, :name %>/td>/tr>
tr>td>Description/td>
td>%= text_area :recipe, :description, :rows => 3 %>/td>/tr>
tr>td>Ingredients/td>
td>%= text_area :recipe, :ingredients, :rows => 3 %>/td>/tr>
tr>td>Instructions/td>
td>%= text_area :recipe, :instructions, :rows => 3 %>/td>/tr>
/table>
%= submit_tag 'Add' %>
%= end_form_tag %>
 /body>
/html>

頁面首先顯示 recipe 對象的錯誤消息。如果用戶發布的數據沒有通過 Recipe 模型對象的驗證就會設置這些消息。然后依次為 form> 標記、每個字段的 text_field 和 text_area 項、submit> 標記和表單末尾。

這是非常標準的 Rails。安全可靠,可用于各種瀏覽器,清晰地映射到為客戶機創建的 HTML。但我需要的是 Web 2.0,就是說 Ajax。那么,該如何修改呢?

控制器端的 add() 方法徹底變了,如 清單 5 所示。
清單 5. Recipes_controller.rb

class RecipesController  ApplicationController
 def add
 end

 def add_ajax
 Recipe.create( { :name => params[:recipe][:name],
 :description => params[:recipe][:description],
 :ingredients => params[:recipe][:ingredients],
 :instructions => params[:recipe][:instructions] } )
 end
end

add() 方法不再做任何事,因為有一個新的方法 add_ajax() 處理客戶機返回的數據。

對于模板來說,不需要做大的修改,如 清單 6 所示。
清單 6. add.rhtml 的開始部分

html>
 head>
 %= javascript_include_tag :defaults %>
 /head>
 body>
 div id="counter">/div>
%= form_remote_tag :url => { :action => 'add_ajax' },
 :complete => 'document.forms[0].reset();',
 :update => 'counter' %>
table>
tr>td>Name/td>

文件開始在 HTML 中增加了 head 部分,其中包含對 Rails 默認 JavaScript 文件的引用。這就是 Prototype.js 系統,完成 Ajax 工作的大部分。

然后添加了 div> 標記 counter,保存從 Ajax 請求返回的結果。并不是非常必要,但給用戶一些反饋也不錯。

最后,將原來的 start_form_tag 改為 form_remote_tag。form_remote_tag 有幾個參數,其中最重要的是 url,它指定向何處發送數據。第二個是一個完整的處理程序,其中的 JavaScript 代碼在 Ajax 請求完成時執行。這里重置表單以便讓用戶輸入新的菜譜。然后使用 update 參數告訴 Rails 把 add_ajax 動作的輸出發送到何處。

add_ajax() 方法還需要一個模板。如 清單 7 所示。
清單 7. Add_ajax.rhtml

%= Recipe.find(:all).length %> recipes now in database

如此而已。但并不完全是。這僅僅是從標準 HTML 表單遷移到 Rails 中的 Ajax 表單。圖 1 顯示了準備提交的 Ajax 表單。
圖 1. Ajax 表單

接下來是更加動態的交互,比如使用 Ajax 動態搜索。


Ajax 動態搜索

Prototype.js 提供了觀察頁面上的字段和表單的功能。我利用這種功能觀察一個文本字段,可在其中輸入部分菜譜名。然后運行 RecipesController 的搜索方法,輸出放在文本字段下方的 div> 標記中。首先從更新的 RecipesController 開始,如 清單 8 所示。
清單 8. Recipes_controller.rb

class RecipesController  ApplicationController
...
 def index
 end

 def search_ajax
 @recipes = Recipe.find( :all,
 :conditions => [ "name LIKE ?",
 "%#{params[:recipe][:name]}%" ] )
 render :layout=>false 
 end
end

index() 方法呈現 HTML 表單。search_ajax() 方法根據搜索參數查找菜譜并把數據發送給 ERB 模板格式化。index.rtml 模板如 清單 9 所示。
清單 9. Index.rhtml

html>
head>
%= javascript_include_tag :defaults %>
/head>
 body>
%= form_tag nil, { :id => 'search_form' } %>
%= text_field 'recipe', 'name' %>
%= end_form_tag %>

div id="recipe">
/div>

%= observe_form :search_form, :frequency => 0.5,
 :update => 'recipe',
 :url => { :action => 'search_ajax' } %> 
 /body>
/html>

在 清單 9 的開頭同樣包括了 JavaScript 庫。然后創建一個具有搜索字段和 div> 標記的 form 表單用來保存搜索返回的數據。最后調用 observe_form() 輔助方法,它創建 JavaScript 代碼觀察表單的變化,并把表單數據發送到 search_ajax() 方法。然后將該方法的結果放到 recipe div> 中。

search_ajax.rhtml 表單的代碼如 清單 10 所示。
清單 10. Search_ajax.rhtml

% @recipes.each { |r| %>
h1>%= r.name %>/h1>
p>%= r.description %>/p>
% } %>

由于搜索結果可能有多項,循環遍歷菜譜列表并輸出其名稱和說明。

當在瀏覽器中打開該站點并在地址欄中輸入 apple 的時候,我找到了蘋果餡餅的做法,如 圖 2 所示。
圖 2. Ajax 動態搜索

這就是最簡單的實現。但如果希望進一步了解蘋果餡餅該如何做?可以使用 Ajax 在需要時動態獲得配料和做法嗎?很高興您這樣問!當然能!


在命令中增加內容

有時候,讓用戶選擇下載更多的信息而不是生硬地把信息堆到頁面上更加友好。傳統上,Web 應用程序開發人員使用隱藏的 div> 標記包含信息,當用戶要求這些資料時再顯示出來。Rails 提供了一種更優美的方法,可以在需要的時候使用 Ajax 請求數據。

清單 11 中的菜單模板增加了 link_to_remote() 輔助方法調用。
清單 11. Search_ajax.rhtml

% @recipes.each { |r| %>
h1>%= r.name %>/h1>
p>%= r.description %>/p>
div id="extra_%= r.id %>">/div>
%= link_to_remote 'Extra',
 :url => { :action => 'get_extra_ajax', :id => r.id }, 
 :update => "extra_#{r.id}" %> 
% } %>

link_to_remote() 在頁面中添加 JavaScript 代碼和包含指定文本的 anchor(a>)標記。客戶單擊該鏈接時,頁面就會發出 Ajax 請求來獲得新內容并替代原來的文本。

為了獲得新的信息,必須為 RecipesController 添加一個 get_extra_ajax() 方法。如 清單 12 所示。
清單 12. Recipes_controller.rb

class RecipesController  ApplicationController
 ...
 def get_extra_ajax
 @recipe = Recipe.find( params[:id] )
 render :layout=>false 
 end
end

此外還需要一個模板 get_extra_ajax.rhtml 來格式化這些信息。清單 13 顯示了該模板。
清單 13. Get_extra_ajax.rhtml

blockquote>%= simple_format @recipe.ingredients %>/blockquote>
p>%= simple_format @recipe.instructions %>/p>

現在回到頁面并輸入 apple,將看到 圖 3 所示的結果。
圖 3. 增加了可以訪問配料及做法的鏈接

單擊該鏈接時,瀏覽器使用 Ajax 從 Web 服務器檢索額外的資料并顯示在那個位置。結果如 圖 4 所示。
圖 4. 菜譜的細節

如果有一個行項或細節類型的報告,這種 Ajax 模式非常方便,因為請求每個記錄的細節可能非常耗時,最好在需要的時候再請求。此外這種技術也有助于節約屏幕資源。

可能最熱門的 Web 2.0 特性是自動完成文本字段。否則 這趟 Ajax 之旅怎么能算完整呢?


自動完成字段

Rails 使得構建自動完成字段極其簡單。首先要在 index.rhtml 模板中增加一些東西。修改后的版本如 清單 14 所示。
清單 14. 修改后的 index.rhtml

html>
head>
%= javascript_include_tag :defaults %>
style>
div.auto_complete {
 width: 300px; 
 background: #fff; 
} 
div.auto_complete ul { 
 border: 1px solid #888; 
 margin: 0px; 
 padding: 0px; 
 width: 100%; 
 list-style-type: none; 
} 
div.auto_complete ul li { 
 margin: 0px; 
 padding: 3px; 
} 
div.auto_complete ul li.selected { 
 background-color: #ffb; 
} 
div.auto_complete ul strong.highlight { 
 color: #800; 
 margin: 0px; 
 padding: 0px; 
} 
/style>
/head>
 body>
%= form_tag nil, { :id => 'search_form' } %>
p>%= text_field 'recipe', 'name', :autocomplete => 'off' %>/p>
div class="auto_complete" id="recipe_name_auto_complete">/div> 
%= auto_complete_field :recipe_name,
 :url => { :action=>'autocomplete_recipe_name' },
 :tokens => ',' %>
%= end_form_tag %>
...

文件上方的級聯樣式表(CSS)部分用于自動完成字段的下拉列表。此外還對 text_field 略做修改關閉瀏覽器的自動完成機制。下拉列表中的項放在新增的 div> 中,這些項將調用 auto_complete() 方法。auto_complete() 輔助方法創建客戶端 JavaScript 代碼調用服務器上的 autocomplete_recipe_name() 方法以及 recipe name 文本字段的當前內容。

RecipesController 的 autocomplete_recipe_name() 方法搜索該名稱,如 清單 15 所示。
清單 15. Recipes_controller.rb

class RecipesController  ApplicationController
...
 def autocomplete_recipe_name
 @recipes = Recipe.find( :all,
 :conditions => [ "name LIKE ?",
 "%#{params[:recipe][:name]}%" ] )
 render :layout=>false 
 end
end

還需要一個 ERB 模板建立列表,如 清單 16 所示。
清單 16. Autocomplete_recipe_list.rb

ul class="autocomplete_list"> 
% @recipes.each { |r| %> 
li class="autocomplete_item">%= r.name %>/li> 
% } %> 
/ul>

自動完成系統查找一個 HTML 列表(ul>),其中每個列表項都是一個 option。使用 index.rhtml 頁面的 CSS (或者您提供的樣式表)格式化。

為了查看自動完成的效果,在瀏覽器中打開頁面,然后輸入 test。我在 test 菜譜中加入了一些數據。結果如 圖 5 所示。
圖 5. 下拉自動完成列表

可以使用上下箭頭鍵選擇一個選項然后按 Enter 鍵選擇。這樣將把選擇的內容復制到文本字段中。

非常靈活,感謝 Rails 體系結構,它使這很容易實現。

結束語

無需諱言,我喜歡 Rails。從使用它的那一刻起我就被它深深吸引了。就我所見,Web 的很多開發人員都被它吸引了。為什么不呢?Rails 使得創建高交互性的 Web 應用程序易如反掌。

即使您還沒有開始編寫 Rails 應用程序,我也建議您下載 Instant Rails 或 Locomotive 應用程序開始嘗試一下。您將體會到很多樂趣,并學習到很多可用于 Java? PHP 或 Microsoft .NET 應用程序的東西。也許您會發現您希望一直編寫 Rails 代碼。

您可能感興趣的文章:
  • Windows下Ruby on Rails開發環境安裝配置圖文教程
  • ruby on rails 代碼技巧
  • 攻克CakePHP(PHP中的Ruby On Rails框架)圖文介紹
  • 在阿里云 (aliyun) 服務器上搭建Ruby On Rails環境
  • CentOS中配置Ruby on Rails環境
  • win7安裝ruby on rails開發環境
  • ruby on rails中Model的關聯詳解

標簽:張家界 普洱 遼寧 梧州 永州 荊門 三沙 公主嶺

巨人網絡通訊聲明:本文標題《在Ruby on Rails中使用AJAX的教程》,本文關鍵詞  在,Ruby,Rails,中,使用,AJAX,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Ruby on Rails中使用AJAX的教程》相關的同類信息!
  • 本頁收集關于在Ruby on Rails中使用AJAX的教程的相關信息資訊供網民參考!
  • 推薦文章
    国产视频一区二区三区四区| 国产伦精品一区二区三区四区视频 | 欧美日韩免费观看一区三区| 8x8x8国产精品| 日韩av在线资源| 亚洲一区第一页| 欧洲成人在线观看| 99电影在线观看| av在线不卡一区| 日韩hmxxxx| 手机免费av片| 男人天堂资源网| 在线观看美女av| 少妇又紧又色又爽又刺激视频| 国产九色91回来了| 国产十六处破外女视频| 中文字幕一区二区人妻痴汉电车| 蜜臀av性久久久久蜜臀aⅴ| 日本一区二区三级电影在线观看| 亚洲成人精品一区| 亚洲精品国产福利| 日产精品久久久一区二区福利| 国产a一区二区| 日韩视频 中文字幕| 中文字幕 日韩 欧美| 国产三级国产精品| 在线免费视频a| 欧美性xxxx图片| 亚洲精品国产无码| 久久99精品国产.久久久久| 91在线播放网址| 一本一道综合狠狠老| 精品欧美一区二区久久| 国产免费一区视频观看免费 | 国产精品极品美女在线观看免费| 亚洲国产一区二区三区在线| 久久综合伊人77777麻豆最新章节| 自拍偷拍第9页| 亚洲人在线观看视频| 一区二区三区在线视频免费观看| 亚洲成人精品视频在线观看| 26uuu另类亚洲欧美日本一| 久久综合色一本| 风韵丰满熟妇啪啪区老熟熟女| 久久人人爽人人爽人人片av免费| 成人一区二区三区视频| 欧美日韩国产高清一区二区三区 | 国产欧美一区二区精品忘忧草| 亚洲性猛交xxxxwww| 国产成人精品自拍| 亚洲精品手机在线观看| 免费一级黄色大片| 国产aⅴ综合色| 亚洲精品美女久久久久| 国产精品一区视频| 四虎影视1304t| 无码国精品一区二区免费蜜桃| 亚洲一区二区三区精品在线| 69av在线视频| 亚洲中文字幕无码专区| 欧美激情图片小说| 国产成人精品三级麻豆| 日韩网站在线看片你懂的| 成人黄色激情网| 香港日本韩国三级网站| 国产乱码久久久| 亚洲色图都市小说| 欧美精品在线播放| 欧美久久久久久久久久久久久久| 国产十六处破外女视频| 久久蜜桃av一区二区天堂| 中文字幕在线看视频国产欧美| 一区二区三视频| 国产一级中文字幕| 亚洲乱码国产乱码精品精98午夜 | 在线视频国内一区二区| 999在线免费观看视频| 少妇饥渴放荡91麻豆| 国产91精品精华液一区二区三区 | 欧美一二三四区在线| 欧美日韩精品免费看| 貂蝉被到爽流白浆在线观看| 成人永久aaa| 久久久成人av| 国产福利影院在线观看| 国产毛片在线视频| 在线观看视频91| 蜜桃在线一区二区三区精品| www.av免费| 一区二区三区在线观看网站| 国产精品日韩电影| 亚洲国产欧美视频| 久久久不卡影院| 欧美疯狂性受xxxxx另类| 亚洲一区二区三区四区五区xx| 日本免费不卡视频| 一本色道久久综合亚洲精品小说 | 中文字幕视频一区二区三区久| 日本中文字幕久久看| 欧美精品欧美极品欧美激情| 精品一区免费av| 9.1国产丝袜在线观看| 国产人妻互换一区二区| 一级片视频免费| 亚洲成人中文字幕| 黄色在线视频网| jiyouzz国产精品久久| 久久久成人的性感天堂| 任你躁av一区二区三区| 国产一区视频网站| 97精品免费视频| 黄色国产在线观看| 99国产精品国产精品毛片| 日韩av高清不卡| 紧身裙女教师波多野结衣| 欧美性黄网官网| 亚洲午夜精品福利| 亚洲人妻一区二区三区| 色综合久久久久久中文网| 一本加勒比北条麻妃| 亚洲一区二区三区四区五区黄| 国产精品yjizz| 国产理论片在线观看| 伊人一区二区三区久久精品| 乱码一区二区三区| 亚洲精品欧美激情| 亚洲视频电影| 精彩视频一区二区| 欧美精品久久一区二区| 视频国产一区二区| 欧美一二三区在线| 超碰人人草人人| 国产欧美精品区一区二区三区 | 午夜精品久久久久久久96蜜桃| 欧美日韩中文一区| 国产午夜伦鲁鲁| 不卡一区二区在线| 国产精品欧美一区二区三区奶水| 日本网站在线播放| 精品国产三级a在线观看| 蜜臀视频一区二区三区| 国产成人亚洲综合色影视| 国产在线观看91精品一区| 一区二区三区麻豆| 亚洲国产精品va在线| 国产高清成人久久| 自拍偷拍国产精品| 99精品一级欧美片免费播放| 日本在线不卡视频一二三区| 午夜精品久久久久久久99热| 久久成人在线观看| 亚洲白拍色综合图区| av网站有哪些| 欧美性猛交xxxx富婆| 欧美精品成人网| 久久久不卡网国产精品一区| 日本一区二区精品视频| 国产精品美女久久久久aⅴ国产馆| 欧美性色黄大片人与善| 国产精品影视在线观看| 日韩高清国产精品| 久久亚洲一级片| 日韩极品视频在线观看| 一区二区三区四区高清精品免费观看 | 亚洲国产三级网| 欧美成人一区二区三区高清| 久久九九精品99国产精品| 亚洲精品一区二区二区| 国产精品自产拍在线观| 精品一区二区三区香蕉蜜桃| 亚洲在线观看一区| 激情图片小说一区| 国产在线一区二区三区| 久久精品三级| 裸模一区二区三区免费| 国产成人福利片| 日韩欧美一区二区三区四区| 91欧美一区二区| 成人在线视频一区二区三区| 国产精品美女视频| 日本老熟妇毛茸茸| 欧美日韩免费视频| 国产探花视频在线播放| 亚洲日韩欧美视频一区| 91美女免费看| 国产精品成人在线| 久久99精品一区二区三区| 日韩欧美三级电影| 最近日韩中文字幕| 久久成年人网站| 精品国产乱码久久久久久老虎| 久久久久久久久久综合| 久久免费视频网站| 激情图片小说一区| 中文字幕亚洲欧洲| 欧洲亚洲精品在线| 亚洲成人黄色av| 久国内精品在线| 精品免费囯产一区二区三区| 欧美成人免费在线观看| 91免费视频播放| 国产中文字幕91| 成人av先锋影音| 午夜dv内射一区二区| 色婷婷国产精品综合在线观看| 日韩欧美中文视频| 亚洲欧美一区二区三区在线| 五月天综合在线| 69视频在线播放| 国产成人综合在线播放| 99视频在线视频| 777午夜精品免费视频| 国产成人无码精品亚洲| 99re视频在线播放| 成人美女视频在线观看| 亚洲人精品午夜射精日韩| 欧美一区二区三区视频在线| 人人妻人人爽人人澡人人精品| 国产精品v日韩精品| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩理论片| 亚洲日本aⅴ片在线观看香蕉| 国产成人毛毛毛片| 国产精品无码乱伦| 日韩欧美一区二区三区| 亚洲免费激情视频| 蜜桃传媒视频麻豆第一区免费观看| 性做久久久久久久免费看| 久久精品亚洲无码| 91aaaa| 亚洲精品亚洲人成人网| 青娱乐免费在线视频| 国产乱码精品一区二区三区日韩精品| 久久只精品国产| 欧美做受高潮6| 国产日韩欧美中文| 国产精品人妖ts系列视频| 五月天免费网站| www国产亚洲精品| 日本黄色一区二区| 精品在线播放视频| 一区二区三区我不卡| 在线观看日韩av先锋影音电影院| 波多野结衣mp4| 国产在线无码精品| 一本色道久久88综合日韩精品| 日本免费不卡视频| 日本精品一区在线| 久久在线免费观看视频| 成人一级片网址| 中文字幕第六页| 国产精品美女999| 日韩欧美福利视频| 99国产精品99| 韩国一区二区av| 久久婷婷国产麻豆91天堂| 高清不卡一二三区| 精品无码人妻少妇久久久久久| 午夜精品久久久久久99热| 综合欧美亚洲日本| 久草热在线观看| 日本黄色播放器| 精品国产亚洲在线| 国产精品一区二区黑丝| 稀缺小u女呦精品呦| 国产精品成人免费电影| 色综合久久久久综合99| 久久一二三四| 午夜视频在线观| 成人信息集中地欧美| 在线观看亚洲精品| 人人妻人人澡人人爽久久av | www亚洲一区| 国产在线观看黄色| av五月天在线| 91精品久久久久久久久久久| 精品日韩美女的视频高清| 国产第一页在线观看| 色婷婷成人在线| 国产精品自产拍在线观看中文| 777奇米成人网| caoporen国产精品视频| 日韩免费视频一区二区视频在线观看| 国产综合av在线| 午夜精品久久久久久99热| 欧美最新大片在线看| 国产成人精品在线看| 91麻豆精品成人一区二区| 亚洲视频sss| 97视频免费看| 欧美日韩国产在线播放| 精品午夜久久福利影院| 亚洲av鲁丝一区二区三区| 日本免费一级视频| 国产精品久久久久不卡| 欧美刺激午夜性久久久久久久| 久久美女艺术照精彩视频福利播放| 亚洲无码精品在线观看| 777一区二区| 成人区精品一区二区| xxx成人少妇69| 欧美探花视频资源| 久久精品欧美日韩精品| 亚洲大尺度在线观看| 日韩 中文字幕| 丁香花在线影院观看在线播放| 97久久精品人人澡人人爽缅北| 欧美日韩国产麻豆| 国产成人亚洲综合a∨婷婷图片| 一本一道无码中文字幕精品热| 婷婷激情综合五月天| 亚洲精品成人a8198a| 97色在线观看| 91.成人天堂一区| 91麻豆成人久久精品二区三区| 黑人精品一区二区三区| 国产网友自拍视频| 女尊高h男高潮呻吟| 久章草在线视频| 精品婷婷色一区二区三区蜜桃| 久久久久久久激情视频| 在线电影国产精品| 亚洲综合免费观看高清完整版在线 | 日韩精品一级中文字幕精品视频免费观看| 日韩欧美三级在线观看| 艳妇乳肉豪妇荡乳xxx| 爱福利视频一区二区| 国产精品视频在线免费观看 | 日韩欧美国产视频| 欧美自拍偷拍一区二区| 成人黄色三级视频| 99热国产在线观看| 91精品国产高潮对白| 亚洲av人人澡人人爽人人夜夜| 狠狠色伊人亚洲综合网站色| 成人久久久久久| 国产精品一区二区三区在线播放| 欧美中文字幕在线| 91精品国产91久久久久| 97国产suv精品一区二区62| 欧美精品videofree1080p| 久久99精品久久久久久琪琪| 久久艳片www.17c.com| 久久成年人免费电影| 九九久久综合网站| 久久久久久国产免费| 98精品国产自产在线观看 | 亚洲午夜精品久久久久久久久久久久| 日韩免费一区二区三区在线播放| 日韩精品一区国产麻豆| 日韩欧美的一区| 日韩精品一区二区三区在线观看| 日韩一区二区在线观看视频播放| 欧美日韩亚洲综合一区二区三区| 欧美三级午夜理伦三级中视频| 欧洲一区在线电影| 制服丝袜中文字幕亚洲| 91精品国产入口在线| 欧美成人综合网站| 亚洲精品美女免费| 国产亚洲福利一区| 欧美成人激情在线| 国产91在线高潮白浆在线观看| 国产精品免费看久久久香蕉| 国产精品爽爽爽爽爽爽在线观看| 亚洲精品欧美日韩| a级国产乱理论片在线观看99| 欧美久久久久久久| 97碰在线视频| youjizzxxxx18| 久久福利小视频| 欧美视频www| 天堂中文在线网| 99精品视频免费看| 美女视频免费一区| 91蜜桃传媒精品久久久一区二区| 国产精品久久久久久久久免费樱桃 | 国产精品久久久久久久久搜平片| 精品久久久久久电影| 日韩一二三四区| 久久亚洲精品成人| 国产精品美女久久久久久免费| 亚洲在线一区二区| 国产日韩第一页| 天堂一区在线观看| 久久av无码精品人妻系列试探| 国产一级片免费| 国模无码一区二区三区| 成人高清视频在线观看| 亚洲第一成年网| 日韩精品视频免费| 91高清视频免费| 欧美日韩在线精品| av中文字幕网址| 久久久久久国产精品免费播放| 亚洲第一精品网站| 国产调教视频一区| 日韩精品一区国产麻豆| 热久久美女精品天天吊色| 午夜精品一区二区三区在线观看| 奇米视频7777| 成人毛片在线播放| 国产黄色精品视频| 91极品视觉盛宴| 久久91精品国产| 午夜精品福利一区二区| 日韩免费高清一区二区| 国产美女免费看| 中文字幕在线播放不卡一区| 精品国产乱码久久久久久久久 |