精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

免费日韩中文字幕| 久久综合精品一区| 欧美亚洲天堂网| 深夜福利久久| 制服丝袜av成人在线看| 欧美一级免费播放| 加勒比一区二区三区在线| 蜜桃传媒麻豆第一区在线观看| 欧美麻豆久久久久久中文| 中出视频在线观看| 精品视频一区二区三区| 欧美日韩一区二区免费视频| 亚洲一区二区精品在线观看| 色综合久久久久久| 精品亚洲aⅴ乱码一区二区三区| 韩日欧美一区二区| 日韩在线视频网址| 亚洲第一福利社区| 日韩精品一区二区在线| 久久综合伊人77777麻豆最新章节| 大片免费在线观看| 中文字幕欧美激情一区| 国产欧美日韩视频一区二区三区| 亚洲天堂777| 免费在线观看成人av| 久久成人亚洲精品| 日韩黄色中文字幕| 亚洲精品中文字幕99999| 日韩女优视频免费观看| 成年人三级黄色片| 成人看片毛片免费播放器| 亚洲成av人片在线| 青青草综合视频| 黄色网址在线免费观看| 国产精品你懂的| 欧洲久久久久久| 亚洲aaa在线观看| 国产98色在线|日韩| 91欧美激情另类亚洲| 中文字幕免费播放| 日韩精品国产精品| 久久久久久有精品国产| 麻豆亚洲av成人无码久久精品| 九九亚洲精品| 亚洲视频在线播放| 国产吞精囗交久久久| 欧美91在线| 亚洲国产精品嫩草影院久久| 麻豆免费在线观看视频| 日韩激情欧美| 精品国产伦一区二区三区免费| 一起草最新网址| 日韩黄色av| 精品福利在线导航| 男人网站在线观看| 麻豆国产欧美一区二区三区r| 精品国产乱码久久久久久浪潮| 人妻激情偷乱视频一区二区三区| 9999精品| 日韩女优毛片在线| av黄色一级片| 亚洲都市激情| 在线不卡国产精品| 日本裸体美女视频| 欧美~级网站不卡| 欧美高清videos高潮hd| 久操免费在线视频| 91久久综合| 日韩av观看网址| 一区二区乱子伦在线播放| 久久99精品久久只有精品| 91老司机在线| 二区三区在线视频| 91老司机福利 在线| 少妇精品久久久久久久久久| 午夜激情在线观看| 亚洲激情六月丁香| 欧美二区在线视频| 一区二区视频免费完整版观看| 欧美午夜精品久久久久久孕妇 | 亚洲一区久久| 国产精品精品视频| 国产又粗又猛又黄又爽| 丰满少妇久久久久久久| 欧美大香线蕉线伊人久久国产精品| 福利视频在线看| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品va在线观看无码| 老司机深夜福利在线观看| 欧美自拍偷拍午夜视频| 亚洲国产综合av| 欧美高清视频看片在线观看| 中文字幕在线视频日韩| 美女毛片在线观看| 老**午夜毛片一区二区三区| 91久久久亚洲精品| 无码国产色欲xxxx视频| 中文字幕欧美一区| 男人天堂1024| 国产精品亚洲欧美一级在线| 日韩av在线网页| www.av免费| 日韩精品欧美精品| 成人av中文| 成年在线观看免费人视频| 一区二区久久久| 簧片在线免费看| 卡通动漫精品一区二区三区| 色琪琪综合男人的天堂aⅴ视频| 国产精品第二十页| 精品一区二区国语对白| 欧美高清视频一区| 爱看av在线| 宅男噜噜噜66一区二区66| asian性开放少妇pics| 欧美1区2区| 国产精品午夜国产小视频| 天天干,夜夜爽| 中文字幕在线不卡| av免费在线播放网站| 国产精品一区二区中文字幕| 日韩一区av在线| www.国产毛片| av欧美精品.com| wwwjizzjizzcom| 欧美成人aaa| 国产亚洲欧美aaaa| 国产精品免费精品一区| 成人黄色a**站在线观看| 四虎影院一区二区| 日韩欧国产精品一区综合无码| 日韩精品免费看| 国产一级二级毛片| 国产精品一区二区久激情瑜伽| 亚洲成人精品电影在线观看| 中文在线8资源库| 日韩av中文在线| 国产污污视频在线观看| 不卡的av电影| 欧美激情 国产精品| 波多野结衣欧美| 久久久久久久电影一区| 成人激情四射网| 一区二区三区波多野结衣在线观看| 日韩av一卡二卡三卡| 91蜜臀精品国产自偷在线| 国产精品视频白浆免费视频| gogogo高清在线观看免费完整版| 在线观看av不卡| 夜夜春很很躁夜夜躁| 日本特黄久久久高潮 | 欧美永久精品| 亚洲va国产va天堂va久久| 超碰在线免费播放| 日韩欧美二区三区| 国产午夜激情视频| 99在线精品免费| 北条麻妃在线视频观看| 免费看成人吃奶视频在线| 日韩av免费在线看| 日韩伦理在线电影| 555www色欧美视频| 青草草在线视频| 北条麻妃国产九九精品视频| 免费在线a视频| 亚洲自拍电影| 国产久一一精品| 搞黄网站在线观看| 亚洲国产欧美一区二区三区久久| 日本韩国欧美中文字幕| 国产欧美日韩在线| 亚洲精品视频三区| 国语精品一区| 蜜桃传媒视频麻豆一区| 国产私拍福利精品视频二区| 久久精品欧美一区二区三区麻豆| 欧美a v在线播放| 精品国产乱码| 18成人免费观看网站下载| 成人av影院在线观看| 亚洲另类xxxx| 国产精品久久久久久无人区| 伊人色综合久久天天人手人婷| 亚洲制服丝袜在线播放| 免费在线观看不卡| www.日本在线视频| 国产不卡一区| 99re国产视频| 成人日韩在线| 欧美日本中文字幕| 精品福利视频导航大全| 337p亚洲精品色噜噜噜| 99热国产在线观看| 一色桃子久久精品亚洲| 久久久久久久人妻无码中文字幕爆| 麻豆成人精品| 老司机午夜免费福利视频| 国产剧情在线观看一区| 91日韩久久| av成人免费看| 97在线视频免费观看| 中文字幕xxxx| 亚洲男人的天堂在线观看| 大地资源二中文在线影视观看 | 国产视频精选在线| 日韩欧美国产三级| а中文在线天堂| 五月婷婷另类国产| 日本一级片免费| 国产欧美日韩不卡| av网页在线观看| 国产精品一区二区三区乱码| 又色又爽又高潮免费视频国产| 欧美私人啪啪vps| 亚洲精品在线免费| 亚洲黄色录像| 国产精品永久入口久久久| 欧美videos粗暴| 日韩美女视频中文字幕| 91制片在线观看| 欧美成人免费全部| 日本中文在线观看| 伊人一区二区三区久久精品| 日韩一区免费视频| 精品国产成人在线影院| 精品久久久久成人码免费动漫| 欧美探花视频资源| 老熟妇一区二区三区| 黄色精品一区二区| 国产精品第108页| 亚洲一区二区三区中文字幕在线| 国产又粗又猛又爽又黄的视频小说 | 亚洲精品国产无套在线观| 国产传媒在线看| 国产色一区二区| 天天躁日日躁aaaa视频| 99久久精品国产一区二区三区| 美女日批在线观看| 国产不卡视频一区二区三区| 亚洲黄色片免费看| 狠狠色丁香婷综合久久| 亚洲午夜精品一区| 国产一区二区三区在线观看免费 | 日韩成人在线电影| 国产美女精品视频| 狂野欧美性猛交xxxx| 国产精品青青在线观看爽香蕉| 久久野战av| 国产精品视频网| **日韩最新| 91精品免费| 国产91精品入| 精品国产一区二区三区日日嗨| 久久99精品久久久久久欧洲站| 黑人中文字幕一区二区三区| 久久久久久毛片免费看| 国产一区在线免费| 中日韩免视频上线全都免费| 日韩国产伦理| 国产精品国内免费一区二区三区| 亚洲最新免费视频| 欧美日本国产| 久久久久久久久久网| 亚洲综合国产激情另类一区| 欧美 国产 小说 另类| 蜜臀久久99精品久久久久久9| 思思久久精品视频| 高清av一区二区| 国产精品边吃奶边做爽| 中文字幕乱码日本亚洲一区二区| 任你操精品视频| 亚洲综合区在线| 黄色一级片免费在线观看| 欧美在线免费播放| 国产精品永久久久久久久久久| 欧美一个色资源| 天堂视频中文在线| 中文字幕日韩精品在线观看| av免费在线免费| 欧美在线视频免费| 亚洲精品aa| 国产亚洲精品自在久久| 欧洲激情视频| 亚洲熟妇无码av在线播放| 久久国产99| 性色av浪潮av| 久久精品一区蜜桃臀影院| 三上悠亚作品在线观看| 亚洲成人免费影院| 伊人久久亚洲综合| 亚洲第一网站男人都懂| av资源在线观看免费高清| 欧美噜噜久久久xxx| 婷婷综合六月| 俄罗斯精品一区二区三区| 欧美日韩第一| 国产在线播放观看| 久久精品99国产精品日本| 无码国产精品一区二区免费式直播| 国产午夜一区二区三区| 久久久久久久久99| 欧美日韩免费观看一区二区三区| 亚洲国产www| 北条麻妃久久精品| 欧美gay视频| 国产日本一区二区三区| **女人18毛片一区二区| 日韩中文字幕免费在线| 福利电影一区二区三区| 亚洲欧美精品久久| 色婷婷综合五月| 人人妻人人澡人人爽久久av| xvideos亚洲人网站| 亚洲欧洲高清| 国产视频一区二区不卡| 欧美在线资源| 欧美一级特黄aaa| 亚洲国产成人一区二区三区| 欧美三日本三级少妇99| 91精品国产色综合久久不卡电影| av在线收看| 日韩av电影中文字幕| 欧美成人午夜77777| 999一区二区三区| 国产精品一区久久久久| 亚洲波多野结衣| 欧美年轻男男videosbes| 福利视频在线导航| 欧美一级在线亚洲天堂| 日本天堂一区| 奇米影视亚洲色图| 懂色av一区二区三区免费观看| 日本在线一级片| 91精品综合久久久久久| 无遮挡的视频在线观看| 国产精品欧美亚洲777777| 精品视频久久| 超碰av在线免费观看| 国产人久久人人人人爽| 日日夜夜狠狠操| 国产香蕉精品视频一区二区三区 | 欧美激情二区| 国产中文字幕亚洲| 欧美电影一二区| 亚洲天堂伊人网| 亚洲女厕所小便bbb| 国产suv一区二区| 九九视频直播综合网| 视频在线观看免费影院欧美meiju| 中文字幕在线乱| 国产高清亚洲一区| 久久久精品一区二区涩爱| 精品欧美乱码久久久久久| 免费看电影在线| 精品国产免费人成电影在线观...| 亚洲啪啪91| 加勒比综合在线| 精品视频1区2区3区| 免费在线观看av| 99re在线视频观看| 亚洲青涩在线| 欧美福利第一页| 欧美精品乱人伦久久久久久| 伦xxxx在线| 国产精品一区在线观看| 校园激情久久| а天堂中文在线资源| 欧美一区二区三区不卡| 9999在线视频| 神马影院我不卡午夜| 激情成人午夜视频| 国产在线视频卡一卡二| 亚洲欧美激情视频| 小说区图片区亚洲| 日韩a级在线观看| 国产片一区二区三区| 国产精品玖玖玖| 69影院欧美专区视频| 成人国产精品一级毛片视频| 樱花草www在线| 欧美日韩国产在线播放| 2021av在线| 91精品国产一区二区三区动漫 | 欧美精品偷拍| 久久久亚洲av波多野结衣| 欧美裸体bbwbbwbbw| av电影在线地址| 亚洲精品一区二区三| 成人黄色小视频在线观看| 香蕉污视频在线观看| 欧美另类精品xxxx孕妇| 国产精品一区二区三区av麻| www.久久com| 一本大道久久a久久综合婷婷 | 日韩欧美在线中字| 国产女人18毛片水真多18| 欧美三区在线观看| 国产中文在线播放| 成人免费看片视频在线观看| 久久一夜天堂av一区二区三区|