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

探索AJAX中的消息傳輸模式 (下)

開發(fā) 前端
在我們使用AJAX的應用中,消息傳輸有那些方式呢?純文本、帶HTML的文本、XML、JSON?還有哪些呢?在許多情況下,純文本的消息傳輸就足夠了。又比如復雜點的數(shù)據(jù)信息,表格、對象或者是其它的,這樣我們可以使用XML或是JSON來格式化數(shù)據(jù)后進行傳輸。本文中將就AJAX中的消息傳輸模式進行探索研究。

在上一篇《探索AJAX中的消息傳輸模式 (上)》一文中,我主要介紹了普通字符串(Plain-text string)和XML格式的傳輸模式,然而在實際的開發(fā)應用中,這兩種方法基本上可以足夠應付我們的需求了,不過在對于復雜的對象傳輸?shù)臅r候,采用上面所介紹的這兩種傳輸模式有點顯得不理想。于此,本文將結合《探索AJAX中的消息傳輸模式(一) 》再介紹一種輕量級的數(shù)據(jù)交換格式JSON(JavaScript Object Notation) ,這是一種JavaScrpt自己的一種用來描述對象的方法,JSON從某個角度看可以說是XML的替代品。

在怎么使用JSON來進行數(shù)據(jù)傳輸之前,我們先來看看幾個簡單的JSON語法,為不熟悉JSON且想看本文的朋友打下基礎。JSON和XML一樣也是一種簡單文本格式。相對于XML,它更加易讀、更便于肉眼檢查。在語法的層面上,JSON與其他格式的區(qū)別是在于分隔數(shù)據(jù)的字符,JSON中的分隔符限于單引號、小括號、中括號、大括號、冒號和逗號。下面是一個JSON有效負載:

{"UserID":"0001","UserName":"ZhangSan","UserAge":"22"}

看起來是不是很簡單,鍵與值一一對應(Key----Value),下面我們看看一個復雜點的JSON有效負載:

{Employees:[
       {"EmployeeID":"1","LastName":"Davolio","City":"Seattle","Country":"USA"},
       {"EmployeeID":"2","LastName":"Fuller","City":"Tacoma","Country":"USA"}
           ]
}

從上面的JSON可以很清晰的看出,在Employees這個對象里包含有兩條數(shù)據(jù),我們將其用XML改寫,如下:

<?xml version='1.0' ?>
<Employees>
<Employee>
<EmployeeID>1</EmployeeID>
<LastName>Davolio</LastName>
<City>Seattle</City>
<Country>USA</Country>
</Employee>
<Employee>
<EmployeeID>2</EmployeeID>
<LastName>Fuller</LastName>
<City>Tacoma</City>
<Country>USA</Country>
</Employee>
<Employees>

關于JSON更詳細的使用和語法格式請查看相關資料,這里我推薦一個網(wǎng)站(http://www.json.org/)。也可以在在園里搜索下園內前輩們的文章,Truly的《深入淺出JSON 》這篇文章就介紹了JSON,個人感覺介紹的很細致。

上面說了這么多,我們還是用一個示例來演示下JSON的使用,要不就成了紙上談兵了。 本文的是《探索AJAX中的消息傳輸模式 (上)》的續(xù)篇,示例代碼還是建立在此文的基礎上,在WebService里添加一新方法提供根據(jù)員工編號(EmployeeID)查詢小于等于(<=)該編號的所用員工信息:

[WebMethod]
public string GetEmployeeWithJson(int id)
{
    //查詢出EmployeeID,LastName,City,Country四個字段
    DataTable dt = DataAccess.GetEmployees(id);
    StringBuilder json = new StringBuilder();
    json.Append("{Employees:[");

    int i = 0;
    string result = string.Empty;
    foreach (DataRow row in dt.Rows)
    {
        json.Append("{");
        json.Append(@"""EmployeeID"":""" + row["EmployeeID"] + @""",");
        json.Append(@"""LastName"":""" + row["LastName"] + @""",");
        json.Append(@"""City"":""" + row["City"] + @""",");
        json.Append(@"""Country"":""" + row["Country"] + @"""}");

        if (++i == dt.Rows.Count)
        {
            json.Append("}]");
        }
        json.Append(",");
    }
    json.Append("}");
    result = json.ToString().Remove(json.Length - 2, 1);  //移除","
    result = result.Remove(result.Length - 3, 1);  //移除"}"
    return result;
}

DataAccess.GetEmpoyees(int id)方法定義:

public static DataTable GetEmployees(int id)
{
    string cmdText = "select EmployeeID,LastName,City,Country from Employees";
    cmdText += " where EmployeeID <= " + id;
    return Exce(cmdText); //執(zhí)行SQL返回DataTable
}

這里也許大家會有所疑問,為什么這方法后面要移除一個","和"}",這是在上面動態(tài)構造JSON字符串的時候多出來的,如果不移除方法的返回值則是下面這樣:

為了使在客戶端通過JavaScript能夠正確的解吸此JSON,在返回值后面多出的一個","和"}"是必須去掉的,如下:

到此,服務端的工作算準備完畢,下面看看客戶端是如何實現(xiàn),首先為aspx頁面提供ScriptManager控件,然后引入WebService以便在客戶端調用WebService里的方法:

<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="MessageWebService.asmx" />
</Services>
</asp:ScriptManager>

在提供一個下來列表控件來讓用戶選擇員工編號,這里通過設置默認值(在實際開發(fā)應用中可能會從數(shù)據(jù)庫里讀取數(shù)據(jù),這里只是為了做程序演示),通過一個按扭來發(fā)送請求,將結果顯示在div(resultEmployee)里:

請選擇員工編號范圍小于(<)<asp:DropDownList ID="ddlEmployeeID" runat="server">
    <asp:ListItem>1</asp:ListItem>
    <asp:ListItem>2</asp:ListItem>
    <asp:ListItem>3</asp:ListItem>
    <asp:ListItem>4</asp:ListItem>
    <asp:ListItem>5</asp:ListItem>
    <asp:ListItem>6</asp:ListItem>
    <asp:ListItem>7</asp:ListItem>
    <asp:ListItem>8</asp:ListItem>
</asp:DropDownList>

<input id="Query" type="button" value="查 詢" /><br /><hr />
<div id="resultEmployee"></div>

同樣,我們需要初始化客戶端對控件的引用,以及為按扭添加執(zhí)行事件:

var ddlEmployeeID;
var divResult;
var buttonQuery;
    
function pageLoad()
{
   ddlEmployeeID = $get("<% = ddlEmployeeID.ClientID %>");
   divResult = $get("resultEmployee");
   buttonQuery = $get("Query");
   $addHandler(buttonQuery,"click",onButtonClicked);
   onButtonClicked(null);
}

當點擊按扭的時候就觸發(fā)click事件,調用onButtonClicked方法,執(zhí)行調用WebService里的方法:

function onButtonClicked(eventElement)
{
    //取得選擇的員工ID
     var employeeID = ddlEmployeeID.options[ddlEmployeeID.selectedIndex].value;
    //調用WebService獲取數(shù)據(jù)
    MessageWebService.GetEmployeeWithJson(employeeID,onJsonCallBack);
}

以異步的方式向服務端發(fā)起請求,把employeeID做為參數(shù)傳遞到服務器端,通過onJsonCallBack回調方法來處理返回的數(shù)據(jù),如下所示:

//根據(jù)返回的數(shù)據(jù)動態(tài)構造html表格
var html = new Sys.StringBuilder();
html.append("<table width='460px' cellspacing='1' cellpadding='2' border='0' bgcolor='#999999'>");
html.append("<tr>");
html.append("<td bgcolor='gold' align='center'><b>EmployeeID</b></td>");
html.append("<td bgcolor='gold' align='center'><b>LastName</b></td>");
html.append("<td bgcolor='gold' align='center'><b>City</b></td>");
html.append("<td bgcolor='gold' align='center'><b>Country</b></td>");
html.append("</tr>");
       
for (var i=0;i< data.Employees.length;i++)
{  
    html.append("<tr>");
    html.append("<td bgcolor='white'>"+data.Employees[i]["EmployeeID"]+"</td>");
    html.append("<td bgcolor='white'>"+data.Employees[i].LastName+"</td>");
    html.append("<td bgcolor='white'>"+data.Employees[i].City+"</td>");
    html.append("<td bgcolor='white'>"+data.Employees[i].Country+"</td>");
    html.append("</tr>");
}
html.append("</table>");
resultEmployee.innerHTML = html.toString();

客戶端的完整代碼:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxMessageJson.aspx.cs" Inherits="AjaxMessageJson" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>無標題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
          <Services>
            <asp:ServiceReference Path="MessageWebService.asmx" />
          </Services>
        </asp:ScriptManager>
    <%--d--%>
    </div>
        請選擇員工編號范圍小于(<)<asp:DropDownList ID="ddlEmployeeID" runat="server">
            <asp:ListItem>1</asp:ListItem>
            <asp:ListItem>2</asp:ListItem>
            <asp:ListItem>3</asp:ListItem>
            <asp:ListItem>4</asp:ListItem>
            <asp:ListItem>5</asp:ListItem>
            <asp:ListItem>6</asp:ListItem>
            <asp:ListItem>7</asp:ListItem>
            <asp:ListItem>8</asp:ListItem>
        </asp:DropDownList>
                 
        <input id="Query" type="button" value="查 詢" /><br /><hr />
        <div id="resultEmployee"></div>
    </form>
    
    <script type="text/javascript">
    
    var ddlEmployeeID;
    var divResult;
    var buttonQuery;
    
    function pageLoad()
    {
       ddlEmployeeID = $get("<% = ddlEmployeeID.ClientID %>");
       divResult = $get("resultEmployee");
       buttonQuery = $get("Query");
       $addHandler(buttonQuery,"click",onButtonClicked);
       onButtonClicked(null);
    }
    
    function onButtonClicked(eventElement)
    {
       //取得選擇的員工ID
       var employeeID = ddlEmployeeID.options[ddlEmployeeID.selectedIndex].value;
       //調用WebService獲取數(shù)據(jù)
       MessageWebService.GetEmployeeWithJson(employeeID,onJsonCallBack);
    }
    
    function onJsonCallBack(text)
    {
       var data = eval("data="+text);          
       //服務端的WebService返回的是一個JSON字符串,上面的賦值后data的數(shù)據(jù)實際就等同于下面的定義            
       //var data = {Employees:[{"EmployeeID":"1","LastName":"Davolio","City":"Seattle","Country":"USA"},
       //            {"EmployeeID":"2","LastName":"Fuller","City":"Tacoma","Country":"USA"},
       //            {"EmployeeID":"3","LastName":"Leverling","City":"Kirkland","Country":"USA"}]};
       //
       
       //根據(jù)返回的數(shù)據(jù)動態(tài)構造html表格
       var html = new Sys.StringBuilder();
       html.append("<table width='460px' cellspacing='1' cellpadding='2' border='0' bgcolor='#999999'>");
       html.append("<tr>");
       html.append("<td bgcolor='gold' align='center'><b>EmployeeID</b></td>");
       html.append("<td bgcolor='gold' align='center'><b>LastName</b></td>");
       html.append("<td bgcolor='gold' align='center'><b>City</b></td>");
       html.append("<td bgcolor='gold' align='center'><b>Country</b></td>");
       html.append("</tr>");
       
       for (var i=0;i< data.Employees.length;i++)
       {  
          html.append("<tr>");
          html.append("<td bgcolor='white'>"+data.Employees[i]["EmployeeID"]+"</td>");
          html.append("<td bgcolor='white'>"+data.Employees[i].LastName+"</td>");
          html.append("<td bgcolor='white'>"+data.Employees[i].City+"</td>");
          html.append("<td bgcolor='white'>"+data.Employees[i].Country+"</td>");
          html.append("</tr>");
       }
       html.append("</table>");
       resultEmployee.innerHTML = html.toString();
    }
    </script>
</body>
</html>

如上處理,如果服務器端無數(shù)據(jù)返回則在客戶端頁面上只輸出表頭信息。

 如果有數(shù)據(jù)返回,則動態(tài)的構造了表格并顯示在頁面上,如下:

【編輯推薦】

  1. 探索AJAX中的消息傳輸模式 (上)
  2. 淺析使用AJAX的十個理由
  3. 在ASP.NET中使用AJAX的簡單方法
  4. 使用AJAX構建更優(yōu)秀的Web應用程序
責任編輯:楊鵬飛 來源: 博客園
相關推薦

2009-01-03 11:07:06

AJAXASP.NET.NET

2018-01-12 17:03:29

HTTPgzip壓縮

2014-03-04 15:28:32

iOS開發(fā)消息傳遞機制

2009-02-12 09:55:22

AjaxMVCDojo

2022-10-28 13:33:05

Push模式互聯(lián)網(wǎng)高并發(fā)

2025-05-26 09:10:00

微服務系統(tǒng)發(fā)件箱模式

2010-07-14 17:16:35

SOAP協(xié)議

2018-10-29 08:47:48

傳輸模式無線

2017-08-14 15:14:33

2012-09-04 09:23:45

HTML5消息傳輸傳輸機制

2023-01-04 07:39:39

2013-04-16 13:57:36

2021-05-19 07:50:53

Node.js數(shù)據(jù)傳輸

2022-09-14 11:25:15

BFF架構分布式系統(tǒng)

2010-06-28 17:00:58

FTP傳輸模式

2009-01-16 10:43:00

Web開發(fā)AJAX

2009-06-18 15:23:49

緩存控制器模式Ajax模式

2022-07-21 07:14:16

無代碼模式

2024-12-04 15:38:43

2024-08-12 16:16:29

點贊
收藏

51CTO技術棧公眾號

91视频免费版污| 欧美午夜免费| 国产在线观看你懂的| 日韩精品欧美大片| 欧美日韩一级二级三级| 激情成人开心网| 国产日产精品久久久久久婷婷| 国内精品伊人久久久久av一坑| 久久久综合免费视频| 欧美激情亚洲色图| eeuss国产一区二区三区四区| 日韩欧美在线一区| 无码人妻精品一区二区三区99v| 人人妻人人澡人人爽人人欧美一区 | 91精品国产福利在线观看| 免费观看国产精品视频| 欧美激情免费| 久久久精品影视| 99在线观看视频网站| 中文字幕在线日本| 亚洲午夜久久久久久尤物| 中文字幕日韩欧美| 国产精品第七页| 精品久久亚洲| 欧美日韩不卡一区| 国产精品亚洲a| 国产污视频在线播放| 亚洲色图19p| 性高潮久久久久久久久| 日色在线视频| 不卡影院免费观看| 5566中文字幕一区二区| 亚洲一卡二卡在线| 天堂成人免费av电影一区| 久久久久久久久亚洲| 男人av资源站| 日韩中文首页| 在线观看亚洲区| 久久久视频6r| 国产91精品对白在线播放| 精品国产乱码久久久久久夜甘婷婷| 亚洲欧美日韩一级| 嫩草伊人久久精品少妇av杨幂| 欧美性感美女h网站在线观看免费| www.成年人视频| 青青草视频在线免费直播| 国产精品国产三级国产aⅴ中文| 欧美另类高清视频在线| 性感美女福利视频| 92精品国产成人观看免费| 翡翠波斯猫1977年美国| 亚洲国产视频一区二区三区| 国产精品伊人色| 亚洲最大成人免费视频| va婷婷在线免费观看| 国产又黄又大久久| 亚洲专区在线视频| 亚洲美女综合网| 波多野结衣一区二区三区| 高清免费日韩| 污污视频在线观看网站| 26uuu精品一区二区 | 欧美一级精品| 自拍偷拍亚洲精品| 欧美黄色aaa| 国产综合久久| 97在线观看免费| 亚洲黄网在线观看| 另类调教123区| 91在线播放国产| 亚洲av少妇一区二区在线观看| 国产成人午夜99999| 国产免费高清一区| 四虎影院在线播放| 欧美国产一区二区在线观看| 一本久久a久久精品vr综合| 黄黄的网站在线观看| 亚洲一区视频在线观看视频| 国产无限制自拍| 成人看片网页| 欧美一区二区私人影院日本| 久久久久久久人妻无码中文字幕爆| 久久人人爽人人爽人人片av不| 亚洲欧美日韩网| 日日噜噜夜夜狠狠久久波多野| 国产一在线精品一区在线观看| 欧美一级视频在线观看| 亚洲在线免费观看视频| 国产91丝袜在线播放| 快播日韩欧美| 久久77777| 欧美性高潮床叫视频| 亚洲色图欧美自拍| 美国十次av导航亚洲入口| 在线日韩第一页| 国产在线综合网| 麻豆国产精品一区二区三区| 国产欧美综合精品一区二区| yourporn在线观看视频| 亚洲一区二区三区中文字幕在线| aa免费在线观看| 日韩欧美中文字幕在线视频 | 黄色网页在线免费观看| 午夜精品aaa| 性生活免费在线观看| 久久中文字幕导航| 久久久国产视频| 国产免费一级视频| 成人免费的视频| 综合久久国产| 成人片免费看| 亚洲成人激情在线| 天海翼在线视频| 日韩影院在线观看| 国产一区福利视频| 亚洲无线看天堂av| 欧美日韩三级在线| 日韩中文字幕电影| 国产一区二区三区四区老人| 国产精品揄拍500视频| 五月婷婷丁香网| 一区二区三区中文字幕精品精品 | 精品国产导航| 久久久国产精品免费| 香蕉污视频在线观看| www..com久久爱| 日韩专区第三页| 国产精品一区二区精品| 在线日韩第一页| 国产日韩久久久| 国产亚洲精品bt天堂精选| 人人干视频在线| 成人av资源网址| 久久99亚洲热视| aaa一区二区| 亚洲欧美色一区| 久国产精品视频| 久久国产小视频| 国产精品日韩电影| 成年人在线视频免费观看| 色婷婷av一区| 最近中文字幕在线mv视频在线| 国产欧美高清| 免费在线观看一区二区| 伊伊综合在线| 亚洲欧洲在线视频| 国产字幕在线观看| 国产亚洲综合色| 超碰av在线免费观看| 国产免费播放一区二区| 国产精品扒开腿做爽爽爽视频| 三级视频在线播放| 91福利在线看| 欧美xxxooo| 国内不卡的二区三区中文字幕| 一区不卡字幕| 国产精品视频一区视频二区| 久久国产精品电影| 精品国自产在线观看| 一区二区高清免费观看影视大全| 在线播放国产视频| 91久久视频| 欧美午夜精品久久久久免费视| 欧美三级精品| 精品国产网站地址| 欧美视频xxx| 日本韩国一区二区三区视频| ass极品国模人体欣赏| 久久66热re国产| 国产精品久久国产| 任你躁在线精品免费| 国产精品免费久久久久久| 巨大荫蒂视频欧美大片| 精品剧情v国产在线观看在线| 自拍偷拍欧美亚洲| 国产亚洲成aⅴ人片在线观看| 亚洲一级片网站| 欧美日韩国产一区精品一区| 极品校花啪啪激情久久| 成人国产在线| 久久久久久久久久av| 精华区一区二区三区| 欧美电影一区二区| 日产精品久久久久久久| 国产日韩欧美高清| 麻豆短视频在线观看| 日本中文字幕一区二区视频| 影音先锋成人资源网站| 亚洲视频分类| 5566av亚洲| 日韩一级二级| 久久久久久有精品国产| 国产高清一级毛片在线不卡| 日韩免费视频一区| 久久久久精彩视频| 亚洲成人免费观看| 午夜精品久久久久99蜜桃最新版| 丁香天五香天堂综合| 亚洲精品一二三四五区| 国产综合激情| 欧美 另类 交| 亚洲黄色录像| 国产高清精品一区二区| 日韩一区二区三区免费视频| 国模吧一区二区三区| 黄网页免费在线观看| 亚洲欧美一区二区三区四区| 国产av无码专区亚洲av| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 久久99影视| 97久久精品午夜一区二区| 欧美黄色a视频| 色天下一区二区三区| 久久精品国产久精国产思思| 加勒比一区二区三区在线| 精品国产一区二区三区不卡| 91麻豆成人精品国产| 在线欧美小视频| 欧美精品韩国精品| 亚洲777理论| 国产小视频在线观看免费| 亚洲欧洲av另类| 国产精品1区2区3区4区| 久久精品视频在线看| 国产精品无码电影| 成人小视频免费观看| 中文字幕一二三| 国产综合色产在线精品| 香港日本韩国三级网站| 日韩福利视频网| 免费大片在线观看| 国产精品美女久久久浪潮软件| 97干在线视频| 欧美区一区二| 欧美极品少妇无套实战| 欧美极品一区二区三区| 国产亚洲精品久久久久久久| 亚洲国产精品日韩专区av有中文| 一区二区不卡在线| 午夜欧美在线| 国产一区二区精品在线| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 欧美丰满少妇xxxxx| 大地资源网3页在线观看| 久久九九有精品国产23| av毛片在线免费看| 九九热这里只有在线精品视| av在线官网| 欧美国产视频日韩| 男人草女人视频| 五月激激激综合网色播| 久久精品国产精品青草色艺| 秋霞影视一区二区三区| 欧美福利一区二区三区| 狠狠综合久久av一区二区蜜桃| 日韩一区二区三区资源| 久久亚洲国产| 777久久精品一区二区三区无码| 欧美精品国产一区二区| 久无码久无码av无码| 国产精品久久777777毛茸茸 | 亚洲女人被黑人巨大进入al| 欧美一区二区视频| 这里精品视频免费| 天天影视久久综合| 欧美日韩国产成人在线| av资源网在线播放| 国产精品高清网站| 欧美高清一级片| 久久久久天天天天| 成人同人动漫免费观看| 国产一二三四五| 亚洲精品乱码| www.精品在线| 国产91精品在线观看| 久久丫精品国产亚洲av不卡| 国产精品乱人伦| 福利一区二区三区四区| 欧美在线制服丝袜| 精品国产无码一区二区三区| 亚洲激情视频在线播放| 岛国大片在线观看| 久久99亚洲精品| 免费高清视频在线一区| 亚洲精品1区2区| 六月婷婷激情网| 久久久噜噜噜| 中文写幕一区二区三区免费观成熟| av在线播放成人| 成年人视频软件| 舔着乳尖日韩一区| 国产精品无码久久久久成人app| 亚洲国产高清福利视频| 免费在线看黄网站| 777精品视频| 日韩欧美高清一区二区三区| 任我爽在线视频精品一| 欧美va天堂| 一区二区三区入口| 成人av在线资源网站| 无码人妻精品中文字幕 | 精品国产网站地址| 北岛玲heyzo一区二区| 亚洲直播在线一区| 成人免费看片39| 久久成人免费观看| 国产精品一区三区| 成年人看的免费视频| 欧美午夜久久久| 亚洲成人黄色片| 久久久97精品| 18aaaa精品欧美大片h| 国产欧美日韩丝袜精品一区| 色婷婷狠狠五月综合天色拍| 成人在线免费观看视频网站| 日本 国产 欧美色综合| 国产中文字幕一区二区| 夜色激情一区二区| 91国内精品视频| 一区二区亚洲欧洲国产日韩| 色老头在线一区二区三区| 亚洲久久久久久久久久久| 久久久久亚洲av无码专区桃色| 日本一区二区三区高清不卡| 国产视频91在线| 精品福利一二区| 免费在线看电影| 91精品天堂| 欧美aa国产视频| www.亚洲自拍| 亚洲欧美日韩久久精品| 亚洲特级黄色片| 夜夜躁日日躁狠狠久久88av| 周于希免费高清在线观看| 国产一区二区三区黄| 亚洲无毛电影| 手机免费看av片| 亚洲福利国产精品| 免费看黄色一级视频| 欧美激情在线播放| 第一区第二区在线| 免费毛片网站在线观看| 波多野结衣一区二区三区| 久久露脸国语精品国产91| 亚洲国产精品成人一区二区| 国产后进白嫩翘臀在线观看视频| 97人人模人人爽视频一区二区| 欧美在线精品一区| xxxx视频在线观看| 亚洲超丰满肉感bbw| 天堂网在线播放| 欧美一区二区三区免费视| 欧美日韩一本| 99草草国产熟女视频在线| 国产精品激情自拍| 在线观看wwwxxxx| 5566中文字幕一区二区| 国产一区美女| 在线看黄色的网站| 精品久久久久久久久久国产| 亚洲欧美va天堂人熟伦| 91超碰国产精品| 在线观看免费黄网站| 国产精品高清亚洲| 国产免费一区二区三区免费视频| 色综合久久悠悠| 另类春色校园亚洲| 免费看a级黄色片| 亚洲人精品一区| 亚洲av无码片一区二区三区| 国内精品美女av在线播放| 色天下一区二区三区| 男女视频在线看| 一区二区三区精品视频在线| 内射无码专区久久亚洲| 日本久久亚洲电影| 91久久夜色精品国产按摩| 亚洲成人激情小说| 日韩欧美高清在线视频| 尤物视频在线免费观看| www 成人av com| 石原莉奈一区二区三区在线观看| 亚洲综合久久av一区二区三区| 欧美va亚洲va| 久久久人成影片一区二区三区在哪下载| 亚洲欧洲日夜超级视频| 成人午夜视频在线| 这里只有久久精品视频| 欧美国产极速在线| 国产在线观看91一区二区三区| 日本特黄在线观看| 欧美日韩一区二区免费视频| 日韩大片在线永久免费观看网站| 成人黄视频免费| 日韩va欧美va亚洲va久久| 久草视频免费在线| 国产亚洲一级高清| 欧美成人一区在线观看| 红桃视频 国产| 色综合久久中文综合久久97|