亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

asp.net新聞列表生成靜態頁之批量和單頁生成

2020-01-24 01:33:55
字體:
來源:轉載
供稿:網友

大家都知道,生成靜態頁的方法有兩種,第一種是使用C#在后臺硬編碼,第二種是讀取模板文件,使用字符串代替。總體來講第一種方法代碼量比較大,維護起來有點困難。生成靜態頁的目的是為了提高用戶體驗度,加快訪問速度。

使用靜態頁面還有如下好處:
1、 安全:使用靜態頁面,用戶訪問的使沒有任何操作功能的html頁面,可以說從安全性方面大大提高了程序及服務器的安全。

2、 快速:用戶訪問的是提前生成好的靜態頁面,使用戶對頁面的請求瓶頸只受IO的限制而不會有其他方面的影響。

3、 降低服務器,數據庫負載:因為用戶訪問的是靜態頁,對承載靜態頁的服務器配置要求降低了許多,同時,不會因為過大的訪問量,造成數據庫服務器負載過重等問題。

下面分享asp.net新聞列表生成靜態頁之批量和單頁生成。前期準備,需要新建一個文件夾。。前臺展示:/new/default.aspx  這個頁面放的就是動態的新聞列表數據。

先看下圖:

 

不多說了上代碼

這里要說明一下,我用的AspNetPager分頁控件,需要設置一下

<webdiyer:AspNetPager ID="AspNetPager1" runat="server" FirstPageText="首頁" LastPageText="末頁" NextPageText="下一頁" NumericButtonCount="10"  OnLoad="AspNetPager1_Load" OnPageChanged="AspNetPager1_PageChanged1" PageSize="13" PrevPageText="上一頁" Font-Bold="False" Font-Size="13px" CssClass="badoo" UrlPaging="true" CurrentPageButtonPosition="Center"  PagingButtonSpacing="5px" EnableUrlRewriting="True"  UrlRewritePattern="news_{0}.html" ShowMoreButtons="False"  ShowPageIndexBox="Never" >  </webdiyer:AspNetPager>

需要設置三個地方:

UrlPaging="true" 設置啟用url來傳遞分頁信息  EnableUrlRewriting="True" 啟用URL重寫   UrlRewritePattern="news_{0}.html" 設置分頁URL重寫格式

Static.ashx頁面代碼

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;using System.IO;using System.Net;using System.Data;namespace Web.admin.ashx{ /// <summary> /// Static 生成靜態頁 /// </summary> public class Static : IHttpHandler {  public void ProcessRequest(HttpContext context)  {   string url = context.Request["geturl"];   string path = context.Request["getpath"];   string id = context.Request["id"];   string act = context.Request["act"];   string page = context.Request["pages"];   string pagecount = context.Request["pagecouts"];   string table = context.Request["table"];   string str = "";   if (act == "0")   {    //生成當前選中項    string ids = id.Substring(0, (id.Length - 1));    string[] s_id = ids.Split(',');    for (int i = 0; i < s_id.Length; i++)    {     string path2 = context.Server.MapPath("../../" + path + s_id[i] + ".html");     str = CreateHTML("http://localhost:4216/" + url + s_id[i], path2); //這里必須是拼接的絕對路徑     string urls = "http://localhost:4216/" + path + s_id[i] + ".html"; //這里必須是拼接的絕對路徑     string sql = string.Format("update {0} set Static =1,Url='{1}' where id={2}", table, urls, s_id[i]);     if (new DBTool.DB().RunSqlGetRowCount(sql) > 0)     {     }    }    context.Response.Write(str);    context.Response.End();   }   if (act == "1")   {    //生成當前頁列表    string path2 = context.Server.MapPath("../../" + path + page + ".html");    str = CreateHTML("http://localhost:4216/" + url + page, path2);    context.Response.Write(str);    context.Response.End();   }   if (act == "2")   {    //生成全部列表    int count = Convert.ToInt32(pagecount);    for (int i = 1; i <= count; i++)    {     string path2 = context.Server.MapPath("../../" + path + i + ".html");     str = CreateHTML("http://localhost:4216/" + url + i, path2);    }    context.Response.Write(str);    context.Response.End();   }   if (act == "3")   {    //生成全部項    string sqlsel =string.Format("select Id from {0}",table);    DataTable dt = new DBTool.DB().RunSqlGetDataTable(sqlsel);    if (dt.Rows.Count > 0)    {     string idall = "";     for (int i = 0; i < dt.Rows.Count; i++)     {      idall += dt.Rows[i]["Id"].ToString()+",";     }     string ids = idall.Substring(0, (idall.Length - 1));     string[] s_id = ids.Split(',');     for (int ii = 0; ii < s_id.Length; ii++)     {      string path2 = context.Server.MapPath("../../" + path + s_id[ii] + ".html");      str = CreateHTML("http://localhost:4216/" + url + s_id[ii], path2);      string urls = "http://localhost:4216/" + path + s_id[ii] + ".html";      string sql = string.Format("update {0} set Static =1,Url='{1}' where id={2}", table, urls, s_id[ii]);      if (new DBTool.DB().RunSqlGetRowCount(sql) > 0)      {      }     }     context.Response.Write(str);     context.Response.End();    }   }  }  public string CreateHTML(string strurl, string path)  {   string str = "";   StreamReader sr;   StreamWriter sw = null;   try   {    WebRequest HttpWebRequest = WebRequest.Create(strurl);    WebResponse HttpWebResponse = HttpWebRequest.GetResponse();    sr = new StreamReader(HttpWebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));    string strHtml = sr.ReadToEnd();    sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("utf-8"));    sw.WriteLine(strHtml);    sw.Flush();    sw.Close();    str = "生成成功!";   }   catch (Exception ex)   {    str = "生成失敗,失敗原因" + ex.Message+"。";   }   return str;  }  public bool IsReusable  {   get   {    return false;   }  } }}

后臺生成前臺代碼

  

<div>  <table border="0" cellpadding="0" cellspacing="0" class="list_table1"> <tr> <td width="13%"><input type="text" runat="server" id="text_word" class="text lh20" placeholder="請輸入關鍵字"/></td> <td width="5%">  <asp:Button ID="Button1" runat="server" Text="搜索" CssClass="suborange" OnClick="Button1_Click" /> </td>  <td width="82%"> <a href="list.aspx" class="subgreen">查看全部</a></td> </tr></table> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="list_table"><tr>  <th width="30"> </th>  <th width="60" data-field="id" data-url="newslist.aspx" >ID<img id="lab_id" src="images/a2.png" /></th>  <th width="200" data-field="Name" data-url="newslist.aspx" >名稱<img id="lab_Name" src="images/a2.png" /></th>  <th width="200" data-field="Dir" data-url="newslist.aspx">地址<img id="lab_Dir" src="images/a2.png" /></th>  <th width="150" data-field="Static" data-url="newslist.aspx">靜態化<img id="lab_Static" src="images/a2.png" /></th>  <th>操作</th></tr>  <asp:Repeater ID="R1" runat="server" OnItemDataBound="R1_ItemDataBound" ><ItemTemplate>   <tr class="tr" id='tr_<%#Eval("id")%>'><td class="td_center"><label id='labe_<%#Eval("id")%>'><asp:CheckBox ID="chkItem" runat="server" ToolTip='<%#Eval("id")%>'></asp:CheckBox></label><input type="hidden" id="text_id" runat="server" value='<%#Eval("id")%>' /></td>     <td class="td_center"> <%#Eval("id") %></td>     <td class="td_center"> <%#Eval("Name") %></td>    <td class="td_center"><a href="javascript:;" class="a_1" data-id='<%#Eval("id") %>' data-field='Dir' data-table='HotelInfo' data-url="newslist.aspx">     <%#Eval("Dir") %></a></td>    <td class="td_center">      <asp:Label ID="lab_state" runat="server" Text='<%#Eval("Static") %>'></asp:Label>    </td>    <td class="td_center">     <a href="<%#Eval("Url") %>" class="a_2" target="_blank">查看</a>    <%--data-table data-fild 為復制數據的表明和字段--%><span data-id="<%#Eval("id") %>" class="more" data-table="users" data-fild="Name,PassWord" data-url="list.aspx" data-itemid="<%# Container.ItemIndex + 1%>">更多操作</span>      </td></tr></ItemTemplate></asp:Repeater></table>  <div id="div_none" runat="server" visible="false" style="width: 300px; margin: 20px auto">很抱歉,暫無數據。</div>  <div id="button" class="mt10">   <input type="button" name="button" class="btn btn82 btn_del" value="刪除" onclick="dels('HotelInfo', 'newslist.aspx')" />   <input type="button" name="button" class="btn btn82 btn_checked" value="全選" onclick="QuanXuan()" />   <input type="button" name="button" class="btn btn82 btn_nochecked" value="取消" onclick="FanXuan()" />    <asp:Button ID="Button3" runat="server" Text="添加" CssClass="btn btn82 btn_add" PostBackUrl="addarticle.aspx" />  </div>  <webdiyer:AspNetPager ID="AspNetPager1" runat="server" FirstPageText="首頁" LastPageText="末頁" NextPageText="下一頁" NumericButtonCount="10" OnLoad="AspNetPager1_Load" OnPageChanged="AspNetPager1_PageChanged1" PageSize="13" PrevPageText="上一頁" Font-Bold="False" Font-Size="13px" CssClass="badoo" UrlRewritePattern="" UrlPaging="true" CurrentPageButtonPosition="Center" PagingButtonSpacing="5px" ShowFirstLast="False" ShowMoreButtons="False" ShowPageIndexBox="Never" >  </webdiyer:AspNetPager>  <div class="div_count">   <asp:Label ID="lab_num" runat="server" Text=""></asp:Label>  </div>  <div class="div_both"></div>   <input type="hidden" id="text_delid" runat="server" />  <input type="hidden" id="text_page" value='<%=page() %>' />  <input type="hidden" id="text_pagecount" runat="server" />  <br />

生成靜態列表:

<input type="button" class="suborange Static" value="生成當前頁列表" data-href="newslist.aspx" data-act="1" data-url="news/default.aspx?page=" data-path="news/news_" /><input type="button" class="subcyan Static" value="生成全部列表" data-href="newslist.aspx" data-act="2" data-url="news/default.aspx?page=" data-path="news/news_" /><a href="../news/news_1.html" class="subgreen" target="_blank">查看新聞列表</a>  

生成靜態頁:

 <input type="button" class="submit Static" value="生成當前選中項" data-href="newslist.aspx" data-act="0" data-url="newsel/default.aspx?id=" data-path="newsel/newsel_" data-table="HotelInfo"/><%-- <input type="button" class="subgreen Static" value="生成全部項" data-href="newslist.aspx" data-act="3" data-table="HotelInfo" data-url="newsel/default.aspx?id=" data-path="newsel/newsel_" />--%>  <div id="divdialog"></div>  <div id="loading"><div id="message"></div></div>  </div>

cs代碼

我用的是存儲過程加載數據,存儲過程具體使用方法請看另一篇文章//www.49028c.com/article/42950.htm

using System;using System.Web;using System.Data.SqlClient;using System.Data;using System.Collections.Generic;using System.Web.Script.Serialization;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Text;using System.IO;using System.Net;namespace Web.admin{ public partial class newslist : System.Web.UI.Page {  protected void Page_Load(object sender, EventArgs e)  {   if (!IsPostBack)   {    HttpCookie hcname = Request.Cookies["backname"];    if (hcname != null)    {     string s = Request.Url.ToString().Substring(Request.Url.ToString().LastIndexOf('/') + 1);     if (s.IndexOf("?") > -1) s = s.Substring(0, s.IndexOf("?"));     HttpCookie hc1 = new HttpCookie("backUrl", s);     hc1.Expires = DateTime.Now.AddMinutes(120);     Response.Cookies.Add(hc1);     string title = this.Page.Title.ToString();     HttpCookie hc2 = new HttpCookie("backTitle", Server.UrlEncode(title));     hc2.Expires = DateTime.Now.AddMinutes(120);     Response.Cookies.Add(hc2);     Bind();    }    else    {     this.Page.RegisterStartupScript("aaa", "<script>tuichu();</script>");    }   }  }  public void Bind()  {   SqlParameter[] parms = new SqlParameter[] {   new SqlParameter("@FEILDS",SqlDbType.NVarChar,1000),  new SqlParameter("@PAGE_INDEX",SqlDbType.Int,10),  new SqlParameter("@PAGE_SIZE",SqlDbType.Int,10),  new SqlParameter("@ORDERTYPE",SqlDbType.Int,2),  new SqlParameter("@ANDWHERE",SqlDbType.VarChar,1000),  new SqlParameter("@ORDERFEILD",SqlDbType.VarChar,100),  new SqlParameter("@TABLENAME",SqlDbType.VarChar,100)  };   parms[0].Value = "id,Name,Dir,Static,Url";//獲取所有的字段   parms[1].Value = page();//當前頁面索引   parms[2].Value = 10;//頁面大小   parms[3].Value = paixu();//升序排列   parms[4].Value = "(Name like '%" + keyword() + "%')";//條件語句   parms[5].Value = paixuziduan();//排序字段   parms[6].Value = "HotelInfo";//表名   DataTable dt = new DataTable();   using (SqlDataReader sdr = Yoodor.DAL.SqlHelper.ExecuteReader(CommandType.StoredProcedure, "PAGINATION", parms))   {    dt.Load(sdr);    R1.DataSource = dt;    R1.DataBind();   }   if (keyword() != null && keyword() != "none")   {    text_word.Value = keyword();   }  }  public int page()  {   int PageNumber = Request.QueryString["page"] != null ? Convert.ToInt32(Request.QueryString["page"].ToString()) : 1;   return PageNumber;  }  public string keyword()  {   string key = Request.QueryString["keyword"] != null ? Request.QueryString["keyword"].ToString() : "";   return key;  }  public string type()  {   string key = Request.QueryString["type"] != null ? Request.QueryString["type"].ToString() : "";   return key;  }  public string paixuziduan()  {   string str = "";   string s = Request.QueryString["field"];   if (s != null)   {    str = s;   }   else   {    str = "Id";   }   return str;  }  public int paixu()  {   string asc = Request.QueryString["asc"];   if (asc != null)   {    if (asc == "desc")    {     return 0;    }    else    {     return 1;    }   }   else   {    return 1;   }  }  //分頁事件  protected void AspNetPager1_PageChanged1(object sender, EventArgs e)  {   Bind();  }  protected void AspNetPager1_Load(object sender, EventArgs e)  {   string count = new BLL.f_article().SelectAllNum(keyword(), type());   AspNetPager1.RecordCount = Convert.ToInt32(count);   lab_num.Text = "共<span class='count'>" + count + "</span>條記錄。";   text_pagecount.Value = AspNetPager1.PageCount.ToString();     }  protected void R1_ItemDataBound(object sender, RepeaterItemEventArgs e)  {   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)   {    CheckBox ch = (CheckBox)e.Item.FindControl("chkItem");    HtmlInputHidden tid = (HtmlInputHidden)e.Item.FindControl("text_id");    ch.Attributes.Add("onclick", "checks(" + tid.Value + ")");    Label state = (Label)e.Item.FindControl("lab_state");    if (state.Text == "0")    {     state.Text = "未靜態";     state.ForeColor = System.Drawing.Color.Red;    }    else {     state.Text = "已靜態";    }   }  }  //搜索  protected void Button1_Click(object sender, EventArgs e)  {   string keyword = text_word.Value.Trim();   Response.Redirect("list.aspx?keyword=" + keyword, false);  } }}

glob.js代碼

$(function () { //創建彈出提示框 var divdialog = '<div id="divdialog"></div><div id="divsuredialog"></div>'; $(document.body).append(divdialog); //表格行,鼠標放上去變色 $(".tr:odd").css("background", "#FFFCEA"); $(".tr:odd").each(function () {  $(this).hover(function () {   $(this).css("background-color", "#F5F8F9");  }, function () {   $(this).css("background-color", "#FFFCEA");  }); }); $(".tr:even").each(function () {  $(this).hover(function () {   $(this).css("background-color", "#F5F8F9");  }, function () {   $(this).css("background-color", "#fff");  }); }); //生成靜態頁 $(".Static").click(function () {  var url = $(this).attr("data-url");  var path = $(this).attr("data-path");  var href = $(this).attr("data-href");  var tablename = $(this).attr("data-table");  var actid = $(this).attr("data-act"); //0 表示生成當前選中項  var ids = $("#text_delid").val();  var page = $("#text_page").val();  var pagecount = $("#text_pagecount").val();  if (actid == 0) {   if (ids == "") {    dialog(1, '請先選擇!');    return false;   }  }   $.ajax({    url: "ashx/Static.ashx",    data: { "geturl": url, "getpath": path, "act": actid, "id": ids, "pages": page, "pagecouts": pagecount, "table": tablename },    type: "post",    beforeSend: function (data) {     doProgress(href, "生成成功!");    },    success: function (data) {     doProgress(href, data);    }   })   })});var progress_id = "loading";function SetProgress(progress) { if (progress) {  $("#" + progress_id + " > div").css({ "width": String(progress) + "%", "background": "#F4A830" }); //控制#loading div寬度   $("#" + progress_id + " > div").html(String(progress) + "%"); //顯示百分比  }}var i = 0;function doProgress(href, msg) { $("#loading").show(); if (i > 100) {  $("#message").html(msg).fadeIn("fast");//加載完畢提示   // window.location.href = href;  $("#loading").hide();  dialog(0, msg, href, 1000);  return; } if (i <= 100) {  setTimeout("doProgress('"+href+"','"+msg+"')", 1);  SetProgress(i);  i++; }}function checks(id) {var spid = "";spid += id + ",";var aa = $("#text_delid").val();if ($("#labe_" + id + " input").attr("checked")) { // $("#tr_" + id).css("background","#000"); $("#text_delid").val(aa + spid); return false;}else { //$("#tr_" + id).removeClass("hover1"); if (aa.indexOf(id) > -1) {  var b = aa.replace(id + ",", "");  $("#text_delid").val(b); }}}//刪除確認框function dels(tablename,url) {var id = $("#text_delid").val();if (id == "") {dialog(1, '請先選擇!');return false;}else {$("#divdialog").hide();suredialog(id, "您確定要刪除嗎?刪除之后信息將不再顯示!",tablename,url);return false;}}function newdels() { var tablename = $("#text_table").val(); var url = "type.aspx?table=" + tablename; var id = $("#text_delid").val(); if (id == "") {  dialog(1, '請先選擇!');  return false; } else {  $("#divdialog").hide();  suredialog(id, "您確定要刪除嗎?刪除之后信息將不再顯示!", tablename, url);  return false; }}//全選反選function QuanXuan() {$(':checkbox').each(function () {$(this).attr("checked", true);var spid = "";var id = $(this).parent('span').attr("title");spid += id + ",";var aa = $("#text_delid").val();$("#text_delid").val(aa + spid);})}function FanXuan() {$(':checkbox').each(function () {$(this).attr("checked", false);$("#text_delid").val('');})}//刪除信息function deleteinfor(ids, table,url) {$("#divsuredialog").hide();var page = $('#text_page').val();$.post("ashx/delete.ashx?id=" + ids + "&table=" + table + "", null, function (data) { if (data == 1) {  if (url.indexOf("type.aspx") > -1) {   dialog(0, '刪除成功', url, 1000);  }  else {   dialog(0, '刪除成功', url + '?page=' + page + '', 1000);  } }else { dialog(2, '刪除失敗', url + '?page=' + page + '', 1000);}});}var dlog;var pp = false;KindEditor.ready(function (K) { K('.a_1').click(function () {$("#divsuredialog").hide();$("#divdialog").hide();var id = $(this).attr("data-id");var value1 = $(this).attr("data-value");var value = "";var html = "";if ($(this).html().indexOf('通過')>-1) { value = value1; html="修改審核狀態(點擊確定即可)"}else { value = $(this).html(); html = "修改信息";}var field = $(this).attr("data-field");var table = $(this).attr("data-table");var url = $(this).attr("data-url");dlog = K.dialog({width: 260,title: html,body: "<div style='margin:10px; height:130px'><table width='100%' border='0'><tr><td style='text-align:center; height:50px; '><input type='text' id='text_updatevalue' value=" + value + " class='text lh20' /> </td></tr><tr><td style='text-align:center;height:50px;'><input type='button' onclick=upateinfor('" + id + "','" + field + "','" + table + "','" + url + "') class='subgreen' value='確定' />     <input type='button' onclick='closedlog()' class='suborange' value='取消' /></td></tr></table></div>",closeBtn: { name: '關閉', click: function (e) { dlog.remove(); } }}); }); K('#newsadd').click(function () {  $("#divsuredialog").hide();  $("#divdialog").hide();  dlog = K.dialog({   width: 260,   title: '新增分類',   body: "<div style='margin:10px; height:130px'><table width='100%' border='0'><tr><td style='text-align:center; height:50px; '><input type='text' id='text_typevalue' class='input-text lh20' /> </td></tr><tr><td style='text-align:center;height:50px;'><input type='button' onclick=inserttype() class='subgreen' value='確定' />     <input type='button' onclick='closedlog()' class='suborange' value='取消' /></td></tr></table></div>",   closeBtn: { name: '關閉', click: function (e) { dlog.remove(); } }  }); });});//修改信息function upateinfor(ids, fieldname, tablename, url) {var page = $('#text_page').val();var value = $("#text_updatevalue").val();$.post("ashx/update.ashx?id=" + ids + "&table=" + tablename + "&field=" + fieldname + "&value=" + escape(value) + "", null, function (data) {if (data == 1) { closedlog(); if (url.indexOf("type.aspx") > -1) {  dialog(0, '修改成功', url, 1000); } else {  dialog(0, '修改成功', url + '?page=' + page + '', 1000); }}else { closedlog(); dialog(2, '修改失敗', url+'?page=' + page + '', 1000); }});}//修改信息 帶值function upateinforss(ids, value, fieldname, tablename, url) { var page = $('#text_page').val(); $.post("ashx/update.ashx?id=" + ids + "&table=" + tablename + "&field=" + fieldname + "&value=" + escape(value) + "", null, function (data) {  if (data == 1) {   $("#div_tip").hide();   if (url.indexOf("type.aspx") > -1)   {    dialog(0, '修改成功', url , 1000);   }   else {    dialog(0, '修改成功', url + '?page=' + page + '', 1000);   }  }  else { closedlog(); dialog(2, '修改失敗', url + '?page=' + page + '', 1000); } });}//增加分類function inserttype(){ var value = $("#text_typevalue").val(); var table = $("#text_table").val(); var url = "type.aspx?table="+table; var page = $('#text_page').val(); $.post("ashx/insert.ashx?table="+table+"&value=" + escape(value) + "", null, function (data) {  if (data == 1) {   closedlog();   dialog(0, '添加成功', url, 1000);  }  else { closedlog(); dialog(2, '添加失敗', url , 1000); } });}function closedlog() { dlog.remove(); }//彈出刪除 確認對話框function suredialog(id, msg, tablename,url) { var html = "<div class='sure_title'>系統提示<a href='javascript:;' onclick='closesurediv()'></a></div><div class='sure_content'></div><div class='sure_btn'><input type='hidden' id='text_deleId' /><input type='button' onclick=deleteinfor('" + id + "','" + tablename + "','"+url+"') value='確定' class='subgreen' />    <input type='button' onclick='closesurediv()' value='取消' class='suborange' /></div>"; $("#divsuredialog").show(); $("#divsuredialog").html(html); $(".sure_content").html(msg);}

以上內容是asp.net新聞列表生成靜態頁之批量和單頁生成的全部內容,還有生成文章靜態頁,在這里我要提醒大家生成文章的靜態頁的方法給這個是不一樣的,請繼續關注本網站,我會持續更新的。謝謝大家閱讀我的作品。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成色777777女色窝| 亚洲日本中文字幕免费在线不卡| 国产成人精品电影久久久| 亚洲精品一区久久久久久| 78色国产精品| 777午夜精品福利在线观看| 国内精久久久久久久久久人| 4444欧美成人kkkk| 亚洲a∨日韩av高清在线观看| 成人精品福利视频| 国产精品综合久久久| 久久精品视频在线观看| 久热爱精品视频线路一| 欧洲亚洲免费视频| 中文字幕久久精品| 午夜精品美女自拍福到在线| 在线视频日韩精品| 成人精品一区二区三区电影黑人| 狠狠躁天天躁日日躁欧美| 色狠狠久久aa北条麻妃| www亚洲精品| 亚洲精品成人久久| 午夜精品久久久久久久久久久久| 亲子乱一区二区三区电影| 日韩人在线观看| 精品国产成人在线| 亚洲最大在线视频| 国产精品高清在线观看| 亚洲国产一区二区三区四区| 久久免费少妇高潮久久精品99| 欧美激情xxxx性bbbb| 中文字幕精品久久久久| 这里只有精品视频在线| 国产一区私人高清影院| 91av在线国产| 欧美日韩激情视频8区| 日韩中文字幕在线看| 国产精品电影在线观看| 亚洲第一精品电影| 欧美精品电影免费在线观看| 国产欧美日韩中文字幕| 欧美综合在线第二页| 亚洲嫩模很污视频| 庆余年2免费日韩剧观看大牛| 亚洲视频国产视频| 日本久久久久久久久| 精品久久久视频| 亚洲国产日韩欧美在线99| 久久福利网址导航| 久久成人人人人精品欧| 欧美精品在线免费观看| 国产成人啪精品视频免费网| 中文字幕精品网| 欧美日韩视频在线| 亚洲美女免费精品视频在线观看| 亚洲人成网站999久久久综合| 成人在线激情视频| 91夜夜未满十八勿入爽爽影院| 国产精品久久久91| 国产精品69久久| 亚洲欧美制服第一页| 日韩欧美一区二区三区| 亚洲天堂网站在线观看视频| 欧美日韩中文字幕在线| 日韩精品免费在线| 国产偷亚洲偷欧美偷精品| 最近2019好看的中文字幕免费| 亚洲性生活视频在线观看| 日韩美女激情视频| 国产精品一区二区三区毛片淫片| 欧美日韩亚洲系列| 欧美日韩国内自拍| 亚洲网站视频福利| 538国产精品视频一区二区| 亚洲成av人片在线观看香蕉| 亚洲人精品午夜在线观看| 日韩国产一区三区| 亚洲一区二区中文| 欧美成人午夜视频| 久久影视三级福利片| 91精品久久久久久久久久另类| 亚洲精品国产精品乱码不99按摩| 日本成熟性欧美| 欧美激情影音先锋| 久久久久日韩精品久久久男男| 久久在线精品视频| 久热在线中文字幕色999舞| 国产精品美女网站| 91九色视频在线| 久久精品免费播放| 欧美成人激情图片网| 亚洲精品福利免费在线观看| 欧美日本高清一区| 成人av在线网址| 欧美成人黑人xx视频免费观看| 91久久精品国产91久久| 久久久噜噜噜久久久| 亚洲精品网站在线播放gif| 久久久免费观看| 欧美在线不卡区| 国产精品成av人在线视午夜片| 日韩成人在线播放| 亚洲视频专区在线| 日韩亚洲国产中文字幕| 欧美激情伊人电影| 丝袜美腿精品国产二区| 在线中文字幕日韩| 久久的精品视频| 亚洲精品美女久久| 4438全国亚洲精品在线观看视频| 亚洲欧洲中文天堂| 91av视频在线免费观看| 久久777国产线看观看精品| 日韩精品欧美激情| 精品在线欧美视频| 日韩资源在线观看| 欧日韩不卡在线视频| 国产精品露脸av在线| 亚洲色图综合久久| 国产精品香蕉国产| 精品国产乱码久久久久酒店| 精品国产一区二区在线| 欧美在线观看网站| 国产亚洲aⅴaaaaaa毛片| 亚洲成人a**站| 午夜精品理论片| 日韩欧美中文字幕在线播放| 久久久精品免费视频| 欧美老女人性生活| 青青青国产精品一区二区| 欧美老女人bb| 亚洲欧洲午夜一线一品| 国产一区二区三区高清在线观看| 欧美国产乱视频| 欧美制服第一页| 欧美成人精品激情在线观看| 日本久久精品视频| 综合国产在线视频| 国产精品福利在线观看网址| 亚洲国产精品悠悠久久琪琪| 91免费欧美精品| 欧美成人午夜剧场免费观看| 国产精品一区二区久久久| 久久综合伊人77777尤物| 久久69精品久久久久久国产越南| 最近2019年中文视频免费在线观看| 国产亚洲精品成人av久久ww| 久久久成人精品| 欧美高清视频免费观看| 久久久久在线观看| 成人网在线免费看| 欧美国产日本在线| 久久99热精品这里久久精品| 欧日韩在线观看| 97精品视频在线观看| 成人有码在线视频| 日韩在线观看免费全集电视剧网站| 91精品国产乱码久久久久久蜜臀| 中文字幕不卡av| 高跟丝袜一区二区三区| 亚洲精品一区二三区不卡| 国产男人精品视频| 亚洲欧洲午夜一线一品| 日韩中文在线中文网在线观看|